summaryrefslogtreecommitdiff
path: root/src/gen/lib/dotgen
diff options
context:
space:
mode:
Diffstat (limited to 'src/gen/lib/dotgen')
-rw-r--r--src/gen/lib/dotgen/acyclic__c.java780
-rw-r--r--src/gen/lib/dotgen/aspect__c.java1271
-rw-r--r--src/gen/lib/dotgen/class1__c.java821
-rw-r--r--src/gen/lib/dotgen/class2__c.java1100
-rw-r--r--src/gen/lib/dotgen/cluster__c.java1280
-rw-r--r--src/gen/lib/dotgen/compound__c.java1172
-rw-r--r--src/gen/lib/dotgen/conc__c.java990
-rw-r--r--src/gen/lib/dotgen/decomp__c.java848
-rw-r--r--src/gen/lib/dotgen/dotinit__c.java1281
-rw-r--r--src/gen/lib/dotgen/dotsplines__c.java3180
-rw-r--r--src/gen/lib/dotgen/fastgr__c.java1215
-rw-r--r--src/gen/lib/dotgen/flat__c.java1099
-rw-r--r--src/gen/lib/dotgen/mincross__c.java2786
-rw-r--r--src/gen/lib/dotgen/position__c.java2170
-rw-r--r--src/gen/lib/dotgen/rank__c.java2136
-rw-r--r--src/gen/lib/dotgen/sameport__c.java896
16 files changed, 23025 insertions, 0 deletions
diff --git a/src/gen/lib/dotgen/acyclic__c.java b/src/gen/lib/dotgen/acyclic__c.java
new file mode 100644
index 0000000..a661a10
--- /dev/null
+++ b/src/gen/lib/dotgen/acyclic__c.java
@@ -0,0 +1,780 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * Project Info: http://plantuml.com
+ *
+ * If you like this project or if you find it useful, you can support us at:
+ *
+ * http://plantuml.com/patreon (only 1$ per month!)
+ * http://plantuml.com/paypal
+ *
+ * This file is part of Smetana.
+ * Smetana is a partial translation of Graphviz/Dot sources from C to Java.
+ *
+ * (C) Copyright 2009-2017, Arnaud Roques
+ *
+ * This translation is distributed under the same Licence as the original C program:
+ *
+ *************************************************************************
+ * Copyright (c) 2011 AT&T Intellectual Property
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: See CVS logs. Details at http://www.graphviz.org/
+ *************************************************************************
+ *
+ * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
+ * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0]
+ *
+ * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES
+ * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ *
+ * You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package gen.lib.dotgen;
+import static gen.lib.cgraph.edge__c.aghead;
+import static gen.lib.cgraph.edge__c.agtail;
+import static gen.lib.dotgen.fastgr__c.delete_fast_edge;
+import static gen.lib.dotgen.fastgr__c.find_fast_edge;
+import static gen.lib.dotgen.fastgr__c.merge_oneway;
+import static gen.lib.dotgen.fastgr__c.virtual_edge;
+import static smetana.core.JUtilsDebug.ENTERING;
+import static smetana.core.JUtilsDebug.LEAVING;
+import static smetana.core.Macro.GD_comp;
+import static smetana.core.Macro.GD_nlist;
+import static smetana.core.Macro.ND_mark;
+import static smetana.core.Macro.ND_next;
+import static smetana.core.Macro.ND_onstack;
+import static smetana.core.Macro.ND_out;
+import static smetana.core.Macro.UNSUPPORTED;
+import h.Agedge_s;
+import h.Agnode_s;
+import h.Agraph_s;
+import h.boxf;
+import h.pointf;
+import smetana.core.JUtils;
+import smetana.core.__struct__;
+
+public class acyclic__c {
+//1 2digov3edok6d5srhgtlmrycs
+// extern lt_symlist_t lt_preloaded_symbols[]
+
+
+//1 baedz5i9est5csw3epz3cv7z
+// typedef Ppoly_t Ppolyline_t
+
+
+//1 9k44uhd5foylaeoekf3llonjq
+// extern Dtmethod_t* Dtset
+
+
+//1 1ahfywsmzcpcig2oxm7pt9ihj
+// extern Dtmethod_t* Dtbag
+
+
+//1 anhghfj3k7dmkudy2n7rvt31v
+// extern Dtmethod_t* Dtoset
+
+
+//1 5l6oj1ux946zjwvir94ykejbc
+// extern Dtmethod_t* Dtobag
+
+
+//1 2wtf222ak6cui8cfjnw6w377z
+// extern Dtmethod_t* Dtlist
+
+
+//1 d1s1s6ibtcsmst88e3057u9r7
+// extern Dtmethod_t* Dtstack
+
+
+//1 axa7mflo824p6fspjn1rdk0mt
+// extern Dtmethod_t* Dtqueue
+
+
+//1 ega812utobm4xx9oa9w9ayij6
+// extern Dtmethod_t* Dtdeque
+
+
+//1 cyfr996ur43045jv1tjbelzmj
+// extern Dtmethod_t* Dtorder
+
+
+//1 wlofoiftbjgrrabzb2brkycg
+// extern Dtmethod_t* Dttree
+
+
+//1 12bds94t7voj7ulwpcvgf6agr
+// extern Dtmethod_t* Dthash
+
+
+//1 9lqknzty480cy7zsubmabkk8h
+// extern Dtmethod_t _Dttree
+
+
+//1 bvn6zkbcp8vjdhkccqo1xrkrb
+// extern Dtmethod_t _Dthash
+
+
+//1 9lidhtd6nsmmv3e7vjv9e10gw
+// extern Dtmethod_t _Dtlist
+
+
+//1 34ujfamjxo7xn89u90oh2k6f8
+// extern Dtmethod_t _Dtqueue
+
+
+//1 3jy4aceckzkdv950h89p4wjc8
+// extern Dtmethod_t _Dtstack
+
+
+//1 8dfqgf3u1v830qzcjqh9o8ha7
+// extern Agmemdisc_t AgMemDisc
+
+
+//1 18k2oh2t6llfsdc5x0wlcnby8
+// extern Agiddisc_t AgIdDisc
+
+
+//1 a4r7hi80gdxtsv4hdoqpyiivn
+// extern Agiodisc_t AgIoDisc
+
+
+//1 bnzt5syjb7mgeru19114vd6xx
+// extern Agdisc_t AgDefaultDisc
+
+
+//1 35y2gbegsdjilegaribes00mg
+// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected
+
+
+//1 c2rygslq6bcuka3awmvy2b3ow
+// typedef Agsubnode_t Agnoderef_t
+
+
+//1 xam6yv0dcsx57dtg44igpbzn
+// typedef Dtlink_t Agedgeref_t
+
+
+//1 nye6dsi1twkbddwo9iffca1j
+// extern char *Version
+
+
+//1 65mu6k7h7lb7bx14jpiw7iyxr
+// extern char **Files
+
+
+//1 2rpjdzsdyrvomf00zcs3u3dyn
+// extern const char **Lib
+
+
+//1 6d2f111lntd2rsdt4gswh5909
+// extern char *CmdName
+
+
+//1 a0ltq04fpeg83soa05a2fkwb2
+// extern char *specificFlags
+
+
+//1 1uv30qeqq2jh6uznlr4dziv0y
+// extern char *specificItems
+
+
+//1 7i4hkvngxe3x7lmg5h6b3t9g3
+// extern char *Gvfilepath
+
+
+//1 9jp96pa73kseya3w6sulxzok6
+// extern char *Gvimagepath
+
+
+//1 40ylumfu7mrvawwf4v2asvtwk
+// extern unsigned char Verbose
+
+
+//1 93st8awjy1z0h07n28qycbaka
+// extern unsigned char Reduce
+
+
+//1 f2vs67ts992erf8onwfglurzp
+// extern int MemTest
+
+
+//1 c6f8whijgjwwagjigmxlwz3gb
+// extern char *HTTPServerEnVar
+
+
+//1 cp4hzj7p87m7arw776d3bt7aj
+// extern char *Output_file_name
+
+
+//1 a3rqagofsgraie6mx0krzkgsy
+// extern int graphviz_errors
+
+
+//1 5up05203r4kxvjn1m4njcgq5x
+// extern int Nop
+
+
+//1 umig46cco431x14b3kosde2t
+// extern double PSinputscale
+
+
+//1 52bj6v8fqz39khasobljfukk9
+// extern int Syntax_errors
+
+
+//1 9ekf2ina8fsjj6y6i0an6somj
+// extern int Show_cnt
+
+
+//1 38di5qi3nkxkq65onyvconk3r
+// extern char** Show_boxes
+
+
+//1 6ri6iu712m8mpc7t2670etpcw
+// extern int CL_type
+
+
+//1 bomxiw3gy0cgd1ydqtek7fpxr
+// extern unsigned char Concentrate
+
+
+//1 cqy3gqgcq8empdrbnrhn84058
+// extern double Epsilon
+
+
+//1 64slegfoouqeg0rmbyjrm8wgr
+// extern int MaxIter
+
+
+//1 88wdinpnmfs4mab4aw62yb0bg
+// extern int Ndim
+
+
+//1 8bbad3ogcelqnnvo5br5s05gq
+// extern int State
+
+
+//1 17rnd8q45zclfn68qqst2vxxn
+// extern int EdgeLabelsDone
+
+
+//1 ymx1z4s8cznjifl2d9f9m8jr
+// extern double Initial_dist
+
+
+//1 a33bgl0c3uqb3trx419qulj1x
+// extern double Damping
+
+
+//1 d9lvrpjg1r0ojv40pod1xwk8n
+// extern int Y_invert
+
+
+//1 71efkfs77q5tq9ex6y0f4kanh
+// extern int GvExitOnUsage
+
+
+//1 4xy2dkdkv0acs2ue9eca8hh2e
+// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin
+
+
+//1 9js5gxgzr74eakgtfhnbws3t9
+// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle
+
+
+//1 anqllp9sj7wo45w6bm11j8trn
+// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth
+
+
+//1 bh0z9puipqw7gymjd5h5b8s6i
+// extern struct fdpParms_s* fdp_parms
+
+
+
+
+//3 ciez0pfggxdljedzsbklq49f0
+// static inline point pointof(int x, int y)
+public static Object pointof(Object... arg) {
+UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x;
+UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 c1s4k85p1cdfn176o3uryeros
+// static inline pointf pointfof(double x, double y)
+public static __struct__<pointf> pointfof(double x, double y) {
+// WARNING!! STRUCT
+return pointfof_w_(x, y).copy();
+}
+private static __struct__<pointf> pointfof_w_(double x, double y) {
+ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", x);
+ r.setDouble("y", y);
+ return r;
+} finally {
+LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof");
+}
+}
+
+
+
+
+//3 7cufnfitrh935ew093mw0i4b7
+// static inline box boxof(int llx, int lly, int urx, int ury)
+public static Object boxof(Object... arg) {
+UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly;
+UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury;
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 1vvsta5i8of59frav6uymguav
+// static inline boxf boxfof(double llx, double lly, double urx, double ury)
+public static __struct__<boxf> boxfof(double llx, double lly, double urx, double ury) {
+// WARNING!! STRUCT
+return boxfof_w_(llx, lly, urx, ury).copy();
+}
+private static __struct__<boxf> boxfof_w_(double llx, double lly, double urx, double ury) {
+ENTERING("1vvsta5i8of59frav6uymguav","boxfof");
+try {
+ final __struct__<boxf> b = JUtils.from(boxf.class);
+ b.getStruct("LL").setDouble("x", llx);
+ b.getStruct("LL").setDouble("y", lly);
+ b.getStruct("UR").setDouble("x", urx);
+ b.getStruct("UR").setDouble("y", ury);
+ return b;
+} finally {
+LEAVING("1vvsta5i8of59frav6uymguav","boxfof");
+}
+}
+
+
+
+
+//3 1n5xl70wxuabyf97mclvilsm6
+// static inline point add_point(point p, point q)
+public static Object add_point(Object... arg) {
+UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x;
+UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 arrsbik9b5tnfcbzsm8gr2chx
+// static inline pointf add_pointf(pointf p, pointf q)
+public static __struct__<pointf> add_pointf(final __struct__<pointf> p, final __struct__<pointf> q) {
+// WARNING!! STRUCT
+return add_pointf_w_(p.copy(), q.copy()).copy();
+}
+private static __struct__<pointf> add_pointf_w_(final __struct__<pointf> p, final __struct__<pointf> q) {
+ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", p.getDouble("x") + q.getDouble("x"));
+ r.setDouble("y", p.getDouble("y") + q.getDouble("y"));
+ return r;
+} finally {
+LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+}
+}
+
+
+
+
+//3 ai2dprak5y6obdsflguh5qbd7
+// static inline point sub_point(point p, point q)
+public static Object sub_point(Object... arg) {
+UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 16f6pyogcv3j7n2p0n8giqqgh
+// static inline pointf sub_pointf(pointf p, pointf q)
+public static Object sub_pointf(Object... arg) {
+UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9k50jgrhc4f9824vf8ony74rw
+// static inline point mid_point(point p, point q)
+public static Object mid_point(Object... arg) {
+UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2;
+UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 59c4f7im0ftyowhnzzq2v9o1x
+// static inline pointf mid_pointf(pointf p, pointf q)
+public static Object mid_pointf(Object... arg) {
+UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.;
+UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 5r18p38gisvcx3zsvbb9saixx
+// static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+public static Object interpolate_pointf(Object... arg) {
+UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r;
+UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x);
+UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y);
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bxzrv2ghq04qk5cbyy68s4mol
+// static inline point exch_xy(point p)
+public static Object exch_xy(Object... arg) {
+UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9lt3e03tac6h6sydljrcws8fd
+// static inline pointf exch_xyf(pointf p)
+public static Object exch_xyf(Object... arg) {
+UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8l9qhieokthntzdorlu5zn29b
+// static inline box box_bb(box b0, box b1)
+public static Object box_bb(Object... arg) {
+UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 clws9h3bbjm0lw3hexf8nl4c4
+// static inline boxf boxf_bb(boxf b0, boxf b1)
+public static Object boxf_bb(Object... arg) {
+UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bit6ycxo1iqd2al92y8gkzlvb
+// static inline box box_intersect(box b0, box b1)
+public static Object box_intersect(Object... arg) {
+UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8gfybie7k6pgb3o1a6llgpwng
+// static inline boxf boxf_intersect(boxf b0, boxf b1)
+public static Object boxf_intersect(Object... arg) {
+UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 7z8j2quq65govaaejrz7b4cvb
+// static inline int box_overlap(box b0, box b1)
+public static Object box_overlap(Object... arg) {
+UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4z0suuut2acsay5m8mg9dqjdu
+// static inline int boxf_overlap(boxf b0, boxf b1)
+public static Object boxf_overlap(Object... arg) {
+UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 dd34swz5rmdgu3a2np2a4h1dy
+// static inline int box_contains(box b0, box b1)
+public static Object box_contains(Object... arg) {
+UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8laj1bspbu2i1cjd9upr7xt32
+// static inline int boxf_contains(boxf b0, boxf b1)
+public static Object boxf_contains(Object... arg) {
+UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4wf5swkz24xx51ja2dynbycu1
+// static inline pointf perp (pointf p)
+public static Object perp(Object... arg) {
+UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6dtlpzv4mvgzb9o0b252yweuv
+// static inline pointf scale (double c, pointf p)
+public static Object scale(Object... arg) {
+UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x;
+UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9hm902ya6q6bq246ewuh67h38
+// void reverse_edge(edge_t * e)
+public static void reverse_edge(Agedge_s e) {
+ENTERING("9hm902ya6q6bq246ewuh67h38","reverse_edge");
+try {
+ Agedge_s f;
+ delete_fast_edge(e);
+ if ((f = find_fast_edge(aghead(e), agtail(e)))!=null)
+ merge_oneway(e, f);
+ else
+ virtual_edge(aghead(e), agtail(e), e);
+} finally {
+LEAVING("9hm902ya6q6bq246ewuh67h38","reverse_edge");
+}
+}
+
+
+
+
+//3 e9h7n52fs8rucrug9tr0zebe2
+// static void dfs(node_t * n)
+public static void dfs(Agnode_s n) {
+ENTERING("e9h7n52fs8rucrug9tr0zebe2","dfs");
+try {
+ int i;
+ Agedge_s e;
+ Agnode_s w;
+ if (ND_mark(n)!=0)
+ return;
+ ND_mark(n, 1);
+ ND_onstack(n, 1);
+ for (i = 0; (e = (Agedge_s) ND_out(n).getFromList(i))!=null; i++) {
+ w = aghead(e);
+ if (ND_onstack(w)) {
+ reverse_edge(e);
+ i--;
+ } else {
+ if (ND_mark(w) == 0)
+ dfs(w);
+ }
+ }
+ ND_onstack(n, 0);
+} finally {
+LEAVING("e9h7n52fs8rucrug9tr0zebe2","dfs");
+}
+}
+
+
+
+
+//3 1ejgnwd7ek344caegjwg46n6h
+// void acyclic(graph_t * g)
+public static void acyclic_(Agraph_s g) {
+ENTERING("1ejgnwd7ek344caegjwg46n6h","acyclic");
+try {
+ int c;
+ Agnode_s n;
+ for (c = 0; c < GD_comp(g).size; c++) {
+ GD_nlist(g, GD_comp(g).getFromList(c));
+ for (n = GD_nlist(g); n!=null; n = ND_next(n))
+ ND_mark(n, 0);
+ for (n = GD_nlist(g); n!=null; n = ND_next(n))
+ dfs(n);
+ }
+} finally {
+LEAVING("1ejgnwd7ek344caegjwg46n6h","acyclic");
+}
+}
+
+
+}
diff --git a/src/gen/lib/dotgen/aspect__c.java b/src/gen/lib/dotgen/aspect__c.java
new file mode 100644
index 0000000..cf6b5e4
--- /dev/null
+++ b/src/gen/lib/dotgen/aspect__c.java
@@ -0,0 +1,1271 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * Project Info: http://plantuml.com
+ *
+ * If you like this project or if you find it useful, you can support us at:
+ *
+ * http://plantuml.com/patreon (only 1$ per month!)
+ * http://plantuml.com/paypal
+ *
+ * This file is part of Smetana.
+ * Smetana is a partial translation of Graphviz/Dot sources from C to Java.
+ *
+ * (C) Copyright 2009-2017, Arnaud Roques
+ *
+ * This translation is distributed under the same Licence as the original C program:
+ *
+ *************************************************************************
+ * Copyright (c) 2011 AT&T Intellectual Property
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: See CVS logs. Details at http://www.graphviz.org/
+ *************************************************************************
+ *
+ * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
+ * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0]
+ *
+ * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES
+ * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ *
+ * You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package gen.lib.dotgen;
+import static gen.lib.cgraph.attr__c.agget;
+import static smetana.core.JUtilsDebug.ENTERING;
+import static smetana.core.JUtilsDebug.LEAVING;
+import static smetana.core.Macro.N;
+import static smetana.core.Macro.UNSUPPORTED;
+import h.Agraph_s;
+import h.aspect_t;
+import h.boxf;
+import h.pointf;
+import smetana.core.CString;
+import smetana.core.JUtils;
+import smetana.core.__struct__;
+
+public class aspect__c {
+//1 2digov3edok6d5srhgtlmrycs
+// extern lt_symlist_t lt_preloaded_symbols[]
+
+
+//1 baedz5i9est5csw3epz3cv7z
+// typedef Ppoly_t Ppolyline_t
+
+
+//1 9k44uhd5foylaeoekf3llonjq
+// extern Dtmethod_t* Dtset
+
+
+//1 1ahfywsmzcpcig2oxm7pt9ihj
+// extern Dtmethod_t* Dtbag
+
+
+//1 anhghfj3k7dmkudy2n7rvt31v
+// extern Dtmethod_t* Dtoset
+
+
+//1 5l6oj1ux946zjwvir94ykejbc
+// extern Dtmethod_t* Dtobag
+
+
+//1 2wtf222ak6cui8cfjnw6w377z
+// extern Dtmethod_t* Dtlist
+
+
+//1 d1s1s6ibtcsmst88e3057u9r7
+// extern Dtmethod_t* Dtstack
+
+
+//1 axa7mflo824p6fspjn1rdk0mt
+// extern Dtmethod_t* Dtqueue
+
+
+//1 ega812utobm4xx9oa9w9ayij6
+// extern Dtmethod_t* Dtdeque
+
+
+//1 cyfr996ur43045jv1tjbelzmj
+// extern Dtmethod_t* Dtorder
+
+
+//1 wlofoiftbjgrrabzb2brkycg
+// extern Dtmethod_t* Dttree
+
+
+//1 12bds94t7voj7ulwpcvgf6agr
+// extern Dtmethod_t* Dthash
+
+
+//1 9lqknzty480cy7zsubmabkk8h
+// extern Dtmethod_t _Dttree
+
+
+//1 bvn6zkbcp8vjdhkccqo1xrkrb
+// extern Dtmethod_t _Dthash
+
+
+//1 9lidhtd6nsmmv3e7vjv9e10gw
+// extern Dtmethod_t _Dtlist
+
+
+//1 34ujfamjxo7xn89u90oh2k6f8
+// extern Dtmethod_t _Dtqueue
+
+
+//1 3jy4aceckzkdv950h89p4wjc8
+// extern Dtmethod_t _Dtstack
+
+
+//1 8dfqgf3u1v830qzcjqh9o8ha7
+// extern Agmemdisc_t AgMemDisc
+
+
+//1 18k2oh2t6llfsdc5x0wlcnby8
+// extern Agiddisc_t AgIdDisc
+
+
+//1 a4r7hi80gdxtsv4hdoqpyiivn
+// extern Agiodisc_t AgIoDisc
+
+
+//1 bnzt5syjb7mgeru19114vd6xx
+// extern Agdisc_t AgDefaultDisc
+
+
+//1 35y2gbegsdjilegaribes00mg
+// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected
+
+
+//1 c2rygslq6bcuka3awmvy2b3ow
+// typedef Agsubnode_t Agnoderef_t
+
+
+//1 xam6yv0dcsx57dtg44igpbzn
+// typedef Dtlink_t Agedgeref_t
+
+
+//1 nye6dsi1twkbddwo9iffca1j
+// extern char *Version
+
+
+//1 65mu6k7h7lb7bx14jpiw7iyxr
+// extern char **Files
+
+
+//1 2rpjdzsdyrvomf00zcs3u3dyn
+// extern const char **Lib
+
+
+//1 6d2f111lntd2rsdt4gswh5909
+// extern char *CmdName
+
+
+//1 a0ltq04fpeg83soa05a2fkwb2
+// extern char *specificFlags
+
+
+//1 1uv30qeqq2jh6uznlr4dziv0y
+// extern char *specificItems
+
+
+//1 7i4hkvngxe3x7lmg5h6b3t9g3
+// extern char *Gvfilepath
+
+
+//1 9jp96pa73kseya3w6sulxzok6
+// extern char *Gvimagepath
+
+
+//1 40ylumfu7mrvawwf4v2asvtwk
+// extern unsigned char Verbose
+
+
+//1 93st8awjy1z0h07n28qycbaka
+// extern unsigned char Reduce
+
+
+//1 f2vs67ts992erf8onwfglurzp
+// extern int MemTest
+
+
+//1 c6f8whijgjwwagjigmxlwz3gb
+// extern char *HTTPServerEnVar
+
+
+//1 cp4hzj7p87m7arw776d3bt7aj
+// extern char *Output_file_name
+
+
+//1 a3rqagofsgraie6mx0krzkgsy
+// extern int graphviz_errors
+
+
+//1 5up05203r4kxvjn1m4njcgq5x
+// extern int Nop
+
+
+//1 umig46cco431x14b3kosde2t
+// extern double PSinputscale
+
+
+//1 52bj6v8fqz39khasobljfukk9
+// extern int Syntax_errors
+
+
+//1 9ekf2ina8fsjj6y6i0an6somj
+// extern int Show_cnt
+
+
+//1 38di5qi3nkxkq65onyvconk3r
+// extern char** Show_boxes
+
+
+//1 6ri6iu712m8mpc7t2670etpcw
+// extern int CL_type
+
+
+//1 bomxiw3gy0cgd1ydqtek7fpxr
+// extern unsigned char Concentrate
+
+
+//1 cqy3gqgcq8empdrbnrhn84058
+// extern double Epsilon
+
+
+//1 64slegfoouqeg0rmbyjrm8wgr
+// extern int MaxIter
+
+
+//1 88wdinpnmfs4mab4aw62yb0bg
+// extern int Ndim
+
+
+//1 8bbad3ogcelqnnvo5br5s05gq
+// extern int State
+
+
+//1 17rnd8q45zclfn68qqst2vxxn
+// extern int EdgeLabelsDone
+
+
+//1 ymx1z4s8cznjifl2d9f9m8jr
+// extern double Initial_dist
+
+
+//1 a33bgl0c3uqb3trx419qulj1x
+// extern double Damping
+
+
+//1 d9lvrpjg1r0ojv40pod1xwk8n
+// extern int Y_invert
+
+
+//1 71efkfs77q5tq9ex6y0f4kanh
+// extern int GvExitOnUsage
+
+
+//1 4xy2dkdkv0acs2ue9eca8hh2e
+// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin
+
+
+//1 9js5gxgzr74eakgtfhnbws3t9
+// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle
+
+
+//1 anqllp9sj7wo45w6bm11j8trn
+// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth
+
+
+//1 bh0z9puipqw7gymjd5h5b8s6i
+// extern struct fdpParms_s* fdp_parms
+
+
+
+
+//3 ciez0pfggxdljedzsbklq49f0
+// static inline point pointof(int x, int y)
+public static Object pointof(Object... arg) {
+UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x;
+UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 c1s4k85p1cdfn176o3uryeros
+// static inline pointf pointfof(double x, double y)
+public static __struct__<pointf> pointfof(double x, double y) {
+// WARNING!! STRUCT
+return pointfof_w_(x, y).copy();
+}
+private static __struct__<pointf> pointfof_w_(double x, double y) {
+ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", x);
+ r.setDouble("y", y);
+ return r;
+} finally {
+LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof");
+}
+}
+
+
+
+
+//3 7cufnfitrh935ew093mw0i4b7
+// static inline box boxof(int llx, int lly, int urx, int ury)
+public static Object boxof(Object... arg) {
+UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly;
+UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury;
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 1vvsta5i8of59frav6uymguav
+// static inline boxf boxfof(double llx, double lly, double urx, double ury)
+public static __struct__<boxf> boxfof(double llx, double lly, double urx, double ury) {
+// WARNING!! STRUCT
+return boxfof_w_(llx, lly, urx, ury).copy();
+}
+private static __struct__<boxf> boxfof_w_(double llx, double lly, double urx, double ury) {
+ENTERING("1vvsta5i8of59frav6uymguav","boxfof");
+try {
+ final __struct__<boxf> b = JUtils.from(boxf.class);
+ b.getStruct("LL").setDouble("x", llx);
+ b.getStruct("LL").setDouble("y", lly);
+ b.getStruct("UR").setDouble("x", urx);
+ b.getStruct("UR").setDouble("y", ury);
+ return b;
+} finally {
+LEAVING("1vvsta5i8of59frav6uymguav","boxfof");
+}
+}
+
+
+
+
+//3 1n5xl70wxuabyf97mclvilsm6
+// static inline point add_point(point p, point q)
+public static Object add_point(Object... arg) {
+UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x;
+UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 arrsbik9b5tnfcbzsm8gr2chx
+// static inline pointf add_pointf(pointf p, pointf q)
+public static __struct__<pointf> add_pointf(final __struct__<pointf> p, final __struct__<pointf> q) {
+// WARNING!! STRUCT
+return add_pointf_w_(p.copy(), q.copy()).copy();
+}
+private static __struct__<pointf> add_pointf_w_(final __struct__<pointf> p, final __struct__<pointf> q) {
+ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", p.getDouble("x") + q.getDouble("x"));
+ r.setDouble("y", p.getDouble("y") + q.getDouble("y"));
+ return r;
+} finally {
+LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+}
+}
+
+
+
+
+//3 ai2dprak5y6obdsflguh5qbd7
+// static inline point sub_point(point p, point q)
+public static Object sub_point(Object... arg) {
+UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 16f6pyogcv3j7n2p0n8giqqgh
+// static inline pointf sub_pointf(pointf p, pointf q)
+public static Object sub_pointf(Object... arg) {
+UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9k50jgrhc4f9824vf8ony74rw
+// static inline point mid_point(point p, point q)
+public static Object mid_point(Object... arg) {
+UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2;
+UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 59c4f7im0ftyowhnzzq2v9o1x
+// static inline pointf mid_pointf(pointf p, pointf q)
+public static Object mid_pointf(Object... arg) {
+UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.;
+UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 5r18p38gisvcx3zsvbb9saixx
+// static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+public static Object interpolate_pointf(Object... arg) {
+UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r;
+UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x);
+UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y);
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bxzrv2ghq04qk5cbyy68s4mol
+// static inline point exch_xy(point p)
+public static Object exch_xy(Object... arg) {
+UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9lt3e03tac6h6sydljrcws8fd
+// static inline pointf exch_xyf(pointf p)
+public static Object exch_xyf(Object... arg) {
+UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8l9qhieokthntzdorlu5zn29b
+// static inline box box_bb(box b0, box b1)
+public static Object box_bb(Object... arg) {
+UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 clws9h3bbjm0lw3hexf8nl4c4
+// static inline boxf boxf_bb(boxf b0, boxf b1)
+public static Object boxf_bb(Object... arg) {
+UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bit6ycxo1iqd2al92y8gkzlvb
+// static inline box box_intersect(box b0, box b1)
+public static Object box_intersect(Object... arg) {
+UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8gfybie7k6pgb3o1a6llgpwng
+// static inline boxf boxf_intersect(boxf b0, boxf b1)
+public static Object boxf_intersect(Object... arg) {
+UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 7z8j2quq65govaaejrz7b4cvb
+// static inline int box_overlap(box b0, box b1)
+public static Object box_overlap(Object... arg) {
+UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4z0suuut2acsay5m8mg9dqjdu
+// static inline int boxf_overlap(boxf b0, boxf b1)
+public static Object boxf_overlap(Object... arg) {
+UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 dd34swz5rmdgu3a2np2a4h1dy
+// static inline int box_contains(box b0, box b1)
+public static Object box_contains(Object... arg) {
+UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8laj1bspbu2i1cjd9upr7xt32
+// static inline int boxf_contains(boxf b0, boxf b1)
+public static Object boxf_contains(Object... arg) {
+UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4wf5swkz24xx51ja2dynbycu1
+// static inline pointf perp (pointf p)
+public static Object perp(Object... arg) {
+UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6dtlpzv4mvgzb9o0b252yweuv
+// static inline pointf scale (double c, pointf p)
+public static Object scale(Object... arg) {
+UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x;
+UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+//1 buo6aw1j4uziggaugy984eotj
+// static nodeGroup_t *nodeGroups
+
+
+//1 8pcclsxg8w461gulo0pvihkjp
+// static int nNodeGroups = 0
+
+
+
+
+//3 e1ii1fk8ce43zhjwticczdewi
+// static void computeNodeGroups(graph_t * g)
+public static Object computeNodeGroups(Object... arg) {
+UNSUPPORTED("85tw6ni78b2fdpbmcvfkfjj2g"); // static void computeNodeGroups(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n;
+UNSUPPORTED("41zdayra08bo7qofh0t0g44tj"); // nodeGroups = (nodeGroup_t*)gmalloc((agnnodes(g))*sizeof(nodeGroup_t));
+UNSUPPORTED("751hgbeopd6kx0brs46ydl3nk"); // nNodeGroups = 0;
+UNSUPPORTED("bhhgxkf7jt2bkoqqybblectmc"); // /* initialize node ids. Id of a node is used as an index to the group. */
+UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
+UNSUPPORTED("c29pxxzew8wpbooylabmstb6k"); // ND_id(n) = -1;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
+UNSUPPORTED("856fgjw3c9mfzqbqcelccqz6i"); // if (ND_UF_size(n) == 0) { /* no same ranking constraint */
+UNSUPPORTED("995nygsph6blhs7u3roc320vt"); // nodeGroups[nNodeGroups].nodes = (node_t **)zmalloc(sizeof(node_t *));
+UNSUPPORTED("yecg6kqqsu0dce5l7yl9nz0v"); // nodeGroups[nNodeGroups].nodes[0] = n;
+UNSUPPORTED("48boktg0q0ftjks7g2ugmcgr0"); // nodeGroups[nNodeGroups].nNodes = 1;
+UNSUPPORTED("asru03zwy8elrmkb54ceapyf5"); // nodeGroups[nNodeGroups].width = ND_width(n);
+UNSUPPORTED("63tq5olg8fmmqnngdsd2m0p7y"); // nodeGroups[nNodeGroups].height = ND_height(n);
+UNSUPPORTED("2jtn1zrlba2gjw9o8ijqfjd8l"); // ND_id(n) = nNodeGroups;
+UNSUPPORTED("26stq7kxzhcw4bdbet988ue9u"); // nNodeGroups++;
+UNSUPPORTED("ek3ylp6qgnzrlvktaorzarkl6"); // } else /* group same ranked nodes */
+UNSUPPORTED("98gvqspn5y1bfyr14rwoaqk67"); // {
+UNSUPPORTED("2xfdbwqwkydzc27ndexkdqpk3"); // node_t *l = UF_find(n);
+UNSUPPORTED("9k1apjnlyvc0imkojboqq56t"); // if (ND_id(l) > -1) /* leader is already grouped */
+UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // {
+UNSUPPORTED("1dxpo17pe23wsyc88ervx5x7n"); // int index = ND_id(l);
+UNSUPPORTED("a3rj9avq06zyyeiex95z1m5qs"); // nodeGroups[index].nodes[nodeGroups[index].nNodes++] = n;
+UNSUPPORTED("4qloaqbsyg2krphzbyu8l502n"); // nodeGroups[index].width += ND_width(n);
+UNSUPPORTED("7oxuv0m39o7l9yf15yjhvw804"); // nodeGroups[index].height =
+UNSUPPORTED("f301cq3rurukx2hdrzu2rvioq"); // (nodeGroups[index].height <
+UNSUPPORTED("8oi4o7ku7aqcurrfujz4p5qkb"); // ND_height(n)) ? ND_height(n) : nodeGroups[index].
+UNSUPPORTED("bkhrhsn74c58qx4h0val1pmjp"); // height;
+UNSUPPORTED("7me4qfeob3i8uvnfzwktfincy"); // ND_id(n) = index;
+UNSUPPORTED("d6w1jxu5j3ja7tpl4hcag7fv0"); // } else /* create a new group */
+UNSUPPORTED("6dbei3uox5ql5a1vaaguh0xzp"); // {
+UNSUPPORTED("2l80so4pkfhpik5o2c4xb7cff"); // nodeGroups[nNodeGroups].nodes =
+UNSUPPORTED("3ey9wbuwiu5f6tykjlpo26lhj"); // (node_t **)zmalloc((ND_UF_size(l))*sizeof(node_t *));
+UNSUPPORTED("53ell10epajj2omj9xiynycta"); // if (l == n) /* node n is the leader */
+UNSUPPORTED("3lflizih274xjqgv1g0wjdgeq"); // {
+UNSUPPORTED("7m6pmc4ajzo9gva5pgvtljwf3"); // nodeGroups[nNodeGroups].nodes[0] = l;
+UNSUPPORTED("1n4ihvxa7g9rlwmex1up2728t"); // nodeGroups[nNodeGroups].nNodes = 1;
+UNSUPPORTED("a8p3badahan60lefgn5iq9a8c"); // nodeGroups[nNodeGroups].width = ND_width(l);
+UNSUPPORTED("dcwvaft8b2juhy42freidgc8m"); // nodeGroups[nNodeGroups].height = ND_height(l);
+UNSUPPORTED("a47jqpic91ky93e1ohxv590l5"); // } else {
+UNSUPPORTED("7m6pmc4ajzo9gva5pgvtljwf3"); // nodeGroups[nNodeGroups].nodes[0] = l;
+UNSUPPORTED("2aqign2uu1g30cyam63ohxptd"); // nodeGroups[nNodeGroups].nodes[1] = n;
+UNSUPPORTED("el4pqstmtl01oio7cmzrq6qtb"); // nodeGroups[nNodeGroups].nNodes = 2;
+UNSUPPORTED("c1rjyfjlfo2jj62bcy025ukg1"); // nodeGroups[nNodeGroups].width =
+UNSUPPORTED("a2sytyotqqfithwfaykqmsycp"); // ND_width(l) + ND_width(n);
+UNSUPPORTED("eiifp86c59tpvht7teuygr2hw"); // nodeGroups[nNodeGroups].height =
+UNSUPPORTED("7zt5ahh08kx3u1cw8m39031bh"); // (ND_height(l) <
+UNSUPPORTED("3s43dn8agepaf1zik284rw4iw"); // ND_height(n)) ? ND_height(n) : ND_height(l);
+UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // }
+UNSUPPORTED("1z3t7m0t6n4kv8tcm579ais2e"); // ND_id(l) = nNodeGroups;
+UNSUPPORTED("1r38ircnao62y8uafy4au9p8c"); // ND_id(n) = nNodeGroups;
+UNSUPPORTED("7yf3wfxeea0vbj0tkmh1sv74w"); // nNodeGroups++;
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 5vqsnuao6a6zpx51lrbvsra7t
+// int countDummyNodes(graph_t * g)
+public static Object countDummyNodes(Object... arg) {
+UNSUPPORTED("51gqqbcx9xe38hsqk7vtw2h74"); // int countDummyNodes(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("551funk1bxiemly3silcqtngw"); // int count = 0;
+UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n;
+UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e;
+UNSUPPORTED("33mzsqu0xadl81jos28k8lc70"); // /* Count dummy nodes */
+UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
+UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) {
+UNSUPPORTED("bzrm12ll46b0ey13f7049ny17"); // /* flat edges do not have dummy nodes */
+UNSUPPORTED("cyx78ekjs6rwln3461fbzwf7o"); // if (ND_rank(aghead(e)) != ND_rank(agtail(e)))
+UNSUPPORTED("cb5zuqyn7ijkx5rk10yc6tfrv"); // count += abs(ND_rank(aghead(e)) - ND_rank(agtail(e))) - 1;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("7rr0cazy4menu64k2rf61h98y"); // return count;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+//1 by0sucsgzrupx1vrq0sc82zrb
+// static layerWidthInfo_t *layerWidthInfo = NULL
+
+
+//1 2g8u71llxsq207y4p1j8kefuc
+// static int *sortedLayerIndex
+
+
+//1 28et5dpanlo1pz361e1ey0l13
+// static int nLayers = 0
+
+
+
+
+//3 ecn38irnr39x1ci0qrksvt2vb
+// static void computeLayerWidths(graph_t * g)
+public static Object computeLayerWidths(Object... arg) {
+UNSUPPORTED("f0yxrj5hl2h30nj0ykado8683"); // static void computeLayerWidths(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i;
+UNSUPPORTED("aigogf44ojtcesuy4xs7inqbn"); // node_t *v;
+UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n;
+UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e;
+UNSUPPORTED("8o5u7blacrv03sbkd57tsy3ff"); // nLayers = 0;
+UNSUPPORTED("dojzfz9p7nqclvdb5tee3yl8g"); // /* free previously allocated memory */
+UNSUPPORTED("74k79fcsj62zr7jlyzubwv7ld"); // if (layerWidthInfo) {
+UNSUPPORTED("7c1hsgkci660fl7ovcywsfy7h"); // for (i = 0; i < nNodeGroups; i++) {
+UNSUPPORTED("4fm2a017gr8w7plpnzbbgdte6"); // if (layerWidthInfo[i].nodeGroupsInLayer) {
+UNSUPPORTED("1p0hpvyuh05m9zj7iv2byacuu"); // int j;
+UNSUPPORTED("torjjxsqraaddaop50hfluyq"); // for (j = 0; j < layerWidthInfo[i].nNodeGroupsInLayer; j++) {
+UNSUPPORTED("5rh2ziady9vvl3275k6sxuawd"); // //if (layerWidthInfo[i].nodeGroupsInLayer[j])
+UNSUPPORTED("qfkvchcmb0h3vrvsnu17fj29"); // //free(layerWidthInfo[i].nodeGroupsInLayer[j]);
+UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // }
+UNSUPPORTED("9jguo0kg597gyce5y5nj8kf6h"); // free(layerWidthInfo[i].nodeGroupsInLayer);
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("4vnpv79q6n6p1kg9ndbsmzfds"); // if (layerWidthInfo[i].removed)
+UNSUPPORTED("2ypdtktf36wfecowcdjfjxbfn"); // free(layerWidthInfo[i].removed);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("aw89cecwa5xnmsohanlvbst8f"); // free(layerWidthInfo);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("5xa04vocq8qrzxrvg4if75lnp"); // /* allocate memory
+UNSUPPORTED("ge7jqooagslmrp81viou5iok"); // * the number of layers can go up to the number of node groups
+UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */
+UNSUPPORTED("2e016wvwaqoa74u0xllotojs0"); // layerWidthInfo = (layerWidthInfo_t*)zmalloc((nNodeGroups)*sizeof(layerWidthInfo_t));
+UNSUPPORTED("7vfjpab2mkl8qvm3ag5psj6hf"); // for (i = 0; i < nNodeGroups; i++) {
+UNSUPPORTED("1ha5uzjeh0q6s99y9ngi159c"); // layerWidthInfo[i].nodeGroupsInLayer =
+UNSUPPORTED("1bj8nm95udr98gzajp4k7nmuu"); // (nodeGroup_t **)zmalloc((nNodeGroups)*sizeof(nodeGroup_t *));
+UNSUPPORTED("6loyginnjye85c38h5sul660e"); // layerWidthInfo[i].removed = (int*)zmalloc((nNodeGroups)*sizeof(int));
+UNSUPPORTED("a16qoyl314d7d9chwymtn019s"); // layerWidthInfo[i].layerNumber = i;
+UNSUPPORTED("cg2cd89vdfegcllk4lqfvn5h2"); // layerWidthInfo[i].nNodeGroupsInLayer = 0;
+UNSUPPORTED("5qbgpr6w09rjfbzyrmcge4tt2"); // layerWidthInfo[i].nDummyNodes = 0;
+UNSUPPORTED("6cn4a2kaj95meb5bwxgi6t0qr"); // layerWidthInfo[i].width = 0.0;
+UNSUPPORTED("nklu8lmzpq6zswxqna7hbf2"); // layerWidthInfo[i].height = 0.0;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("68bkdm53hpxme9qp9j1zxh4if"); // /* Count dummy nodes in the layer */
+UNSUPPORTED("16hw9gw0dz2w7mrtba0eoqrdi"); // for (n = agfstnode(g); n; n = agnxtnode(g, n))
+UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) {
+UNSUPPORTED("bgir6fgzucxltcpf123wxwa16"); // int k;
+UNSUPPORTED("9l0n1phb69gtf3xurnpundse6"); // /* FIX: This loop maybe unnecessary, but removing it and using
+UNSUPPORTED("7qmve7ja4rala0jzz6b2bf7ee"); // * the commented codes next, gives a segmentation fault. I
+UNSUPPORTED("6tsb25jdjgeyd8kt16ms1k9qc"); // * forgot the reason why.
+UNSUPPORTED("29edlge3wqyp1gs0vymtr5700"); // */
+UNSUPPORTED("40f532kzdw6xhs33zio76rmo2"); // for (k = ND_rank(agtail(e)) + 1; k < ND_rank(aghead(e)); k++) {
+UNSUPPORTED("chgb216iqv20trqdzrg86mdmx"); // layerWidthInfo[k].nDummyNodes++;
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("69qgvs0kkl50uqq9a8psjvv9h"); // /* gather the layer information */
+UNSUPPORTED("7vfjpab2mkl8qvm3ag5psj6hf"); // for (i = 0; i < nNodeGroups; i++) {
+UNSUPPORTED("dh83pjg3c5msf1h1kf0axqdsx"); // v = nodeGroups[i].nodes[0];
+UNSUPPORTED("9bi1i3v5pz27x2f1y1abwhdrm"); // if (ND_rank(v) + 1 > nLayers) /* update the number of layers */
+UNSUPPORTED("ezub0uc17r32oo1qlkf2gdjds"); // nLayers = ND_rank(v) + 1;
+UNSUPPORTED("aksirw784lry2qxk8yppa0p4e"); // layerWidthInfo[ND_rank(v)].width +=
+UNSUPPORTED("3szfevpiz60jx1spm5qxs6dd"); // nodeGroups[i].width * 72 + (layerWidthInfo[ND_rank(v)].width >
+UNSUPPORTED("amrnb3ao1kyyugopgztdru2yy"); // 0) * GD_nodesep(g);
+UNSUPPORTED("9jz8yn32phtkki2y93ymg6cmh"); // if (layerWidthInfo[ND_rank(v)].height < nodeGroups[i].height * 72)
+UNSUPPORTED("41gme6wvrco68e7sq80ey8oal"); // layerWidthInfo[ND_rank(v)].height = nodeGroups[i].height * 72;
+UNSUPPORTED("eglala2xwc9bmolhriirfo56e"); // layerWidthInfo[ND_rank(v)].
+UNSUPPORTED("arh0xb14ftp0yfs8ejxzmhjzk"); // nodeGroupsInLayer[layerWidthInfo[ND_rank(v)].
+UNSUPPORTED("mdsrd2ju7gexbgpwyclxucy0"); // nNodeGroupsInLayer] = &nodeGroups[i];
+UNSUPPORTED("8dv04kyx67hibudzpw8i562vh"); // layerWidthInfo[ND_rank(v)].nNodeGroupsInLayer++;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 62on7vg7kkyolc539do3mec4h
+// static int compFunction(const void *a, const void *b)
+public static Object compFunction(Object... arg) {
+UNSUPPORTED("4ocl61j8fqxzk98dh43ldqo7n"); // static int compFunction(const void *a, const void *b)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("i2zwxk0ezuvec7grppkqqj67"); // int *ind1 = (int *) a;
+UNSUPPORTED("2obagarn6xlc7uq4q8fg8pw05"); // int *ind2 = (int *) b;
+UNSUPPORTED("cy4oapfo680baj6mqy6v64o0d"); // return (layerWidthInfo[*ind2].width >
+UNSUPPORTED("44d4z7bklr6jymot3f82e2qk"); // layerWidthInfo[*ind1].width) - (layerWidthInfo[*ind2].width <
+UNSUPPORTED("dol0wgt1zxwmpxius6rn6lf36"); // layerWidthInfo[*ind1].width);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 ehhhz69emnjuunlpp23vqc6px
+// static void sortLayers(graph_t * g)
+public static Object sortLayers(Object... arg) {
+UNSUPPORTED("30da20fhd5pcu6ofmw4vzj6xt"); // static void sortLayers(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("1djuhyco70xz45va6y1yesa70"); // qsort(sortedLayerIndex, agnnodes(g), sizeof(int), compFunction);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6evdukaqstizjshbr4oanxa73
+// static int getOutDegree(nodeGroup_t * ng)
+public static Object getOutDegree(Object... arg) {
+UNSUPPORTED("2h5zq3e2klttmcfrs4pg0cst6"); // static int getOutDegree(nodeGroup_t * ng)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("b5a93beg34iiqtnufv9wanh2r"); // int i, cnt = 0;
+UNSUPPORTED("7ur993neb8tctm0gbe60vhpva"); // for (i = 0; i < ng->nNodes; i++) {
+UNSUPPORTED("3ubjqvl7psu25r3c10ddw54v5"); // node_t *n = ng->nodes[i];
+UNSUPPORTED("ak952thd788dbr90m2fvaklyu"); // edge_t *e;
+UNSUPPORTED("2z8g63ud3byunrtnllsx573mk"); // graph_t *g = agraphof(n);
+UNSUPPORTED("dar3s057kgujhrxf7no64ofdb"); // /* count outdegree. This loop might be unnecessary. */
+UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) {
+UNSUPPORTED("7hl03wjg5yryhvbe4ar0i0b8g"); // cnt++;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("3zkt5kbq3sockq663o3s3ync7"); // return cnt;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 advd4q4a55y9bkee9lm2jlb0b
+// static int compFunction2(const void *a, const void *b)
+public static Object compFunction2(Object... arg) {
+UNSUPPORTED("3ozmsdf5a2dqxtwspwzu5w8yl"); // static int compFunction2(const void *a, const void *b)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("751goeklcv2nazn2zynh989rh"); // nodeGroup_t **ind1 = (nodeGroup_t **) a, **ind2 = (nodeGroup_t **) b;
+UNSUPPORTED("d5t70ah6319tmfn70ddvkq7wr"); // int cnt1 = getOutDegree(*ind1);
+UNSUPPORTED("8wbvk61eveeuzv86g34s2xbd4"); // int cnt2 = getOutDegree(*ind2);
+UNSUPPORTED("54loo8ag5vsb7zdxx83v3wegy"); // return (cnt2 < cnt1) - (cnt2 > cnt1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 aumg85jl3ptocfpw3ix2pech9
+// static void reduceMaxWidth2(graph_t * g)
+public static Object reduceMaxWidth2(Object... arg) {
+UNSUPPORTED("6kkeddpljjg8jce0vm3z2zxdy"); // static void reduceMaxWidth2(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i;
+UNSUPPORTED("809hvj8mnkno5tj5jlitlzwba"); // int maxLayerIndex;
+UNSUPPORTED("7krkyrq7vtxesiaw3i63dji4m"); // double nextMaxWidth;
+UNSUPPORTED("c9w9u59u9ncaoyp4lxxvw7ys3"); // double w = 0;
+UNSUPPORTED("9x23dbda4cbxrfoy5h5q89sef"); // double targetWidth;
+UNSUPPORTED("3d8p59v1x246rys9xsoqpko98"); // int fst;
+UNSUPPORTED("4zuos9b188cv83meg3dw0orp3"); // nodeGroup_t *fstNdGrp;
+UNSUPPORTED("beehmu1l85sgql2h4wysgoce4"); // int ndem;
+UNSUPPORTED("884zwztabkph7x61nviw8sjef"); // int p, q;
+UNSUPPORTED("8t1tccvz58ueg1sf9fyado1vu"); // int limit;
+UNSUPPORTED("di25ovytf5y19mju57f42pogp"); // int rem;
+UNSUPPORTED("dcmflthwszqqq5jsozmt9oyfi"); // int rem2;
+UNSUPPORTED("81h1x4spv5vyw9fipnyfpgcmm"); // /* Find the widest layer. it must have at least 2 nodes. */
+UNSUPPORTED("5ad5whcn26kk2tafa6g5hmjgm"); // for (i = 0; i < nLayers; i++) {
+UNSUPPORTED("367ttm0jqivj6ascugpsq2ihs"); // if (layerWidthInfo[sortedLayerIndex[i]].nNodeGroupsInLayer <= 1)
+UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue;
+UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else {
+UNSUPPORTED("1qngg4wjsrt1uwmffwse8e1fm"); // maxLayerIndex = sortedLayerIndex[i];
+UNSUPPORTED("mrjkzaja4hn0djdm4njyzwgn"); // /* get the width of the next widest layer */
+UNSUPPORTED("bekefegm5r42jf82uhdsw60k2"); // nextMaxWidth =
+UNSUPPORTED("1s96rlqp02to8be86ahpks4qp"); // (nLayers >
+UNSUPPORTED("4qkxf4ozs5338fev3ejswyucm"); // i + 1) ? layerWidthInfo[sortedLayerIndex[i +
+UNSUPPORTED("90jb1nqwt32r76t90h3kukxls"); // 1]].width : 0;
+UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("atqfhmyhmoiwees87nqlh9bs2"); // if (i == nLayers)
+UNSUPPORTED("4wofltgoxyf0kq1ucrvv2sbq9"); // return; /* reduction of layerwidth is not possible. */
+UNSUPPORTED("5nqb1rqm56ozkw6w0ysotyy06"); // /* sort the node groups in maxLayerIndex layer by height and
+UNSUPPORTED("e9gqf91z12tzdilu3jefz85op"); // * then width, nonincreasing
+UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */
+UNSUPPORTED("3tbh2oua8twhyt14bkhup0v5n"); // qsort(layerWidthInfo[maxLayerIndex].nodeGroupsInLayer,
+UNSUPPORTED("80ucuxmaxd96o7ozxxno7y18c"); // layerWidthInfo[maxLayerIndex].nNodeGroupsInLayer,
+UNSUPPORTED("f0wxqmd02xh4xxnox7semmqup"); // sizeof(nodeGroup_t *), compFunction2);
+UNSUPPORTED("bukry94lbr7k56elmyf5nyna1"); // if (nextMaxWidth <= layerWidthInfo[maxLayerIndex].width / 4
+UNSUPPORTED("1dy07qz8nxz4ovvsonpv95h8x"); // || nextMaxWidth >= layerWidthInfo[maxLayerIndex].width * 3 / 4)
+UNSUPPORTED("4xw4q9anml67xuotpbea3yy1x"); // nextMaxWidth = layerWidthInfo[maxLayerIndex].width / 2;
+UNSUPPORTED("4vcsswlnmvhk990gonx0dbl53"); // targetWidth = nextMaxWidth; /* layerWidthInfo[maxLayerIndex].width/2; */
+UNSUPPORTED("8xl0athl77hag9patwu9qhehu"); // /* now partition the current layer into two or more
+UNSUPPORTED("c49o3kf9bot8xo1pu9vb9qcsy"); // * layers (determined by the ranking algorithm)
+UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */
+UNSUPPORTED("3ku48i8nky2n7oji9472v747k"); // fst = 0;
+UNSUPPORTED("cspv6bcy4ird3pgtk05x2v9x6"); // ndem = 0;
+UNSUPPORTED("1b8yssh8ruoe077cgcki6zdrt"); // limit = layerWidthInfo[maxLayerIndex].nNodeGroupsInLayer;
+UNSUPPORTED("2rbxfdjhm2zringpkeerct448"); // rem = 0;
+UNSUPPORTED("apzuij26xnj5ma4m18z4ai50w"); // rem2 = 0;
+UNSUPPORTED("dap1pwebtq8maf5s2545nbrp1"); // /* initialize w, the width of the widest layer after partitioning */
+UNSUPPORTED("7l2ucqsu9ruv5iie2klh90ahd"); // w = 0;
+UNSUPPORTED("a7g80jjjbl6srwowqdzxcoqs0"); // for (i = 0; i < limit + rem; i++) {
+UNSUPPORTED("1ahjq48zq780a0cwvpseutdkn"); // if (layerWidthInfo[maxLayerIndex].removed[i]) {
+UNSUPPORTED("48so496p8g7nm344prgfhv3r5"); // rem++;
+UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("cg4gj8hzn83y6snfckfbmfo6e"); // if ((w +
+UNSUPPORTED("dv06i6wtz2bw1qsahmuqs98hl"); // layerWidthInfo[maxLayerIndex].nodeGroupsInLayer[i]->width *
+UNSUPPORTED("pf67y1fh8hdiylyu2431xmxa"); // 72 + (w > 0) * GD_nodesep(g) <= targetWidth)
+UNSUPPORTED("bq1bstz8voswqa4fjibespqab"); // || !fst) {
+UNSUPPORTED("5qq0d479u9d6d2ye5xl80ax0d"); // w += (layerWidthInfo[maxLayerIndex].nodeGroupsInLayer[i])->
+UNSUPPORTED("bq93mxk1jp4ou77b72s93zr85"); // width * 72 + (w > 0) * GD_nodesep(g);
+UNSUPPORTED("366y982g736adlsryzw0c3oek"); // if (!fst) {
+UNSUPPORTED("9plnm3zvs0636dt0kmoha46l"); // fstNdGrp =
+UNSUPPORTED("5xiakyfs1gp0y9aasprrrk5mn"); // layerWidthInfo[maxLayerIndex].nodeGroupsInLayer[i];
+UNSUPPORTED("bf0q1igp1253yxfg3f1tfel24"); // fst = 1;
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else {
+UNSUPPORTED("3wwlt6ahhurc0ijlwm0bxslur"); // nodeGroup_t *ng =
+UNSUPPORTED("43fttvx26kc9s70wgpnm3ws2q"); // layerWidthInfo[maxLayerIndex].nodeGroupsInLayer[i];
+UNSUPPORTED("kq0gpmkxpiwbektqvym913vy"); // for (p = 0; p < fstNdGrp->nNodes; p++)
+UNSUPPORTED("7chqat1hgor0xzck89881kmmz"); // for (q = 0; q < ng->nNodes; q++) {
+UNSUPPORTED("3egbmst2r8790sta0upbaq3kj"); // //printf("Trying to add virtual edge: %s -> %s\n",
+UNSUPPORTED("dwbnct46v3we663g5l2tmptui"); // // agnameof(fstNdGrp->nodes[p]), agnameof(ng->nodes[q]));
+UNSUPPORTED("cuqv9sy98rmhdbjpzeex3rg4v"); // /* The following code is for deletion of long virtual edges.
+UNSUPPORTED("1r2z18tbg612ek9sfb489a6xc"); // * It's no longer used.
+UNSUPPORTED("e37um01phgd5qy4hrex7cu8bi"); // */
+UNSUPPORTED("58a2mmk9lsz9t5yzb8b9f8bkp"); // /* add a new virtual edge */
+UNSUPPORTED("6ljuxngn9wk3ftcodzf054yeu"); // edge_t *newVEdge =
+UNSUPPORTED("844w3zq8p902r572neb30unb6"); // virtual_edge(fstNdGrp->nodes[p], ng->nodes[q],
+UNSUPPORTED("b955fhzlbikknivthxtzpnugj"); // NULL);
+UNSUPPORTED("qt1p5nrwd57te4eh2ohjmmta"); // ED_edge_type(newVEdge) = 1;
+UNSUPPORTED("dsgv48crsux69djskyfkvpq8a"); // ndem++; /* increase number of node demotions */
+UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // }
+UNSUPPORTED("7vqv39l80iv7x6hfdcecytlgy"); // /* the following code updates the layer width information. The
+UNSUPPORTED("7j2qzieax8k3ao9i9so65vkc1"); // * update is not useful in the current version of the heuristic.
+UNSUPPORTED("20m1lc1moer8x00tx9ceto0iw"); // */
+UNSUPPORTED("8vij5gjt5kh41fekao3vc79ck"); // layerWidthInfo[maxLayerIndex].removed[i] = 1;
+UNSUPPORTED("czzy9dbc0rmsq8m3o0g5tuamg"); // rem2++;
+UNSUPPORTED("96jz56riot2d1ri2fufximy6f"); // layerWidthInfo[maxLayerIndex].nNodeGroupsInLayer--;
+UNSUPPORTED("ahih3boi0hmv6cjfgurjbltxl"); // /* SHOULD BE INCREASED BY THE SUM OF INDEG OF ALL NODES IN GROUP */
+UNSUPPORTED("7wh7bhbziqs0nzma76j37hbiz"); // layerWidthInfo[maxLayerIndex].nDummyNodes++;
+UNSUPPORTED("4zs60km4pkprzvbgtwsdhp5ad"); // layerWidthInfo[maxLayerIndex].width -=
+UNSUPPORTED("atkdij9n6sv7amu7j5iiofmpb"); // (ng->width * 72 + GD_nodesep(g));
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9m17vsomqcrp49v7i892k9wdz
+// static void applyPacking2(graph_t * g)
+public static Object applyPacking2(Object... arg) {
+UNSUPPORTED("a65t347rhgkl70wordiofv3b"); // static void applyPacking2(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i;
+UNSUPPORTED("5z9j46ysd1pb5bnq6c90enmrq"); // sortedLayerIndex = (int*)zmalloc((agnnodes(g))*sizeof(int));
+UNSUPPORTED("9bb75wlkcadi5zu3bgx60fel0"); // for (i = 0; i < agnnodes(g); i++) {
+UNSUPPORTED("e9lhr9mahq6qolp5r06dl6rfy"); // sortedLayerIndex[i] = i;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("ekdavoqh7w4imu35z1hk4cr27"); // computeLayerWidths(g);
+UNSUPPORTED("6541sj456n87xc6ssjlvin6lv"); // sortLayers(g);
+UNSUPPORTED("22r0c4vewes195tok6uvfzjjk"); // reduceMaxWidth2(g);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 b9x4re3dvjn32qyn2twehamcd
+// void initEdgeTypes(graph_t * g)
+public static Object initEdgeTypes(Object... arg) {
+UNSUPPORTED("2syp4meyieisq746m5m1ff921"); // void initEdgeTypes(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e;
+UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n;
+UNSUPPORTED("7k5t9s9q7nhmwr9qz8jg12ams"); // int lc;
+UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
+UNSUPPORTED("z39vglndoyxj54j2z9v64r6q"); // for (lc = 0; lc < ND_in(n).size; lc++) {
+UNSUPPORTED("agilsevb8bk3ymoczc2ptb24y"); // e = ND_in(n).list[lc];
+UNSUPPORTED("21bvtwcu90i27r8cbu2ngifk"); // ED_edge_type(e) = 0;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9b4z7q5fnvgvi1cs36mimkrqs
+// static double computeCombiAR(graph_t * g)
+public static Object computeCombiAR(Object... arg) {
+UNSUPPORTED("8y99bebjn0nlslisg0u06o7ef"); // static double computeCombiAR(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("gmffj6qikpm7gyjl7ppj2avw"); // int i, maxLayerIndex;
+UNSUPPORTED("bkqjq8sflq6i69h1q5wtrqdyz"); // double maxW = 0;
+UNSUPPORTED("d2sh953raugyt16qa6wimemaq"); // double maxH;
+UNSUPPORTED("3dg5tppzkfs857vo6ykmcnnah"); // double ratio;
+UNSUPPORTED("ekdavoqh7w4imu35z1hk4cr27"); // computeLayerWidths(g);
+UNSUPPORTED("btqcp1jn7vzx1obrdwlpao8ei"); // maxH = (nLayers - 1) * GD_ranksep(g);
+UNSUPPORTED("5ad5whcn26kk2tafa6g5hmjgm"); // for (i = 0; i < nLayers; i++) {
+UNSUPPORTED("6nkzs7fajji0961pjb259v0fk"); // if (maxW <
+UNSUPPORTED("5k2g68qxz0ue7tb2a4pdbhu2j"); // layerWidthInfo[i].width +
+UNSUPPORTED("eoi6tblklq5p0ap1ck08iiqj8"); // layerWidthInfo[i].nDummyNodes * GD_nodesep(g)) {
+UNSUPPORTED("93grfh5yi1ydy8iyt353uh909"); // maxW =
+UNSUPPORTED("279i4wi2e4voircoomc1ry8ua"); // layerWidthInfo[i].width +
+UNSUPPORTED("6xb1rhy6cdjxo2vbpz8nhuvxe"); // layerWidthInfo[i].nDummyNodes * GD_nodesep(g);
+UNSUPPORTED("92zn37cakfkafc7ginje53mb6"); // maxLayerIndex = i;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("cn95qhc4xh1ri1c41fnpwce48"); // maxH += layerWidthInfo[i].height;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("9p670kmiu3qqp1vgbn22mq4w9"); // ratio = maxW / maxH;
+UNSUPPORTED("beyrasxgt5kbbdyzy9nvsaf3i"); // return ratio;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 w58r6lvyglcqidl4qnxr3cm5
+// static void zapLayers(graph_t * g)
+public static Object zapLayers(Object... arg) {
+UNSUPPORTED("dsto0e5yga5gs3tgtzp4pbffj"); // static void zapLayers(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("dzpsknrwv8qkqq20hjnjpjn68"); // int i, j;
+UNSUPPORTED("7cl1kmap8x457uux62gb4277b"); // int start = 0;
+UNSUPPORTED("551funk1bxiemly3silcqtngw"); // int count = 0;
+UNSUPPORTED("90et4gwa94l7wrduohmumf7q6"); // /* the layers are sorted by the layer number. now zap the empty layers */
+UNSUPPORTED("5ad5whcn26kk2tafa6g5hmjgm"); // for (i = 0; i < nLayers; i++) {
+UNSUPPORTED("8oo7ghtfr3xrf5gukymtnn4jk"); // if (layerWidthInfo[i].nNodeGroupsInLayer == 0) {
+UNSUPPORTED("dgv3r9g8m1rprnlfpxqhfe1z9"); // if (count == 0)
+UNSUPPORTED("2ksocundgfwgz5agi901h1ng6"); // start = layerWidthInfo[i].layerNumber;
+UNSUPPORTED("fn6rrzmrb2yold6j6aofg94n"); // count++;
+UNSUPPORTED("ern96acbmw0trnet16xgt1chp"); // } else if (count && layerWidthInfo[i].layerNumber > start) {
+UNSUPPORTED("4f4sjt4zqxe5b75pgq7zd079z"); // for (j = 0; j < layerWidthInfo[i].nNodeGroupsInLayer; j++) {
+UNSUPPORTED("euaoxl3q399fzxn78jpuxbz0m"); // int q;
+UNSUPPORTED("4y0bw1xrvij26xm6lflig8hph"); // nodeGroup_t *ng = layerWidthInfo[i].nodeGroupsInLayer[j];
+UNSUPPORTED("7chqat1hgor0xzck89881kmmz"); // for (q = 0; q < ng->nNodes; q++) {
+UNSUPPORTED("ez35ky0s0p5r57be9io2lrr10"); // node_t *nd = ng->nodes[q];
+UNSUPPORTED("bcfxc7h41rzopvk27c7kreog"); // ND_rank(nd) -= count;
+UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // }
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 25p8yyx732fa1dwxany5vkmqv
+// void rank3(graph_t * g, aspect_t * asp)
+public static Object rank3(Object... arg) {
+UNSUPPORTED("ey9g3c61eb7j5dnz3gbhvflt3"); // void rank3(graph_t * g, aspect_t * asp)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("2jcii9cclu1dijzqekzc175pe"); // Agnode_t *n;
+UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i;
+UNSUPPORTED("752slid56zrpl98vchhyeqpj"); // int iterations = asp->nextIter;
+UNSUPPORTED("6wfeyz2bw1fm15jb5qg3a79a2"); // double lastAR = MAXDOUBLE;
+UNSUPPORTED("5bvy7rsy7sf1krbn35gmd888x"); // computeNodeGroups(g); /* groups of UF DS nodes */
+UNSUPPORTED("cn5dqgh2amp70r1jzq8d7v75x"); // for (i = 0; (i < iterations) || (iterations == -1); i++) {
+UNSUPPORTED("42uwgh3dkewf6zkd83xt1wzjd"); // /* initialize all ranks to be 0 */
+UNSUPPORTED("attp4bsjqe99xnhi7lr7pszar"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
+UNSUPPORTED("f429zn3r84ceckfatzshenxzo"); // ND_rank(n) = 0;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("d7qgdx3iixit5pdzj1yfw5vc8"); // /* need to compute ranking first--- by Network flow */
+UNSUPPORTED("1um989w8mqkye2u0q3wbc8dgb"); // rank1(g);
+UNSUPPORTED("cou59yxqf69o7kpjwdkc0vdth"); // asp->combiAR = computeCombiAR(g);
+UNSUPPORTED("a0xpyoq74njvdwc9lcvgyfc0p"); // if (Verbose)
+UNSUPPORTED("5ndbkluuhatxcz2bwngcywbhc"); // fprintf(stderr, "combiAR = %lf\n", asp->combiAR);
+UNSUPPORTED("53w2avskexaf6hjssoeplgz0o"); // /* Uncomment the following codes, for working with narrow graphs */
+UNSUPPORTED("am6dg6wfejg71244n1zzvaed6"); // /* Success or if no improvement */
+UNSUPPORTED("7qroolj8ezwbbkwrss9k1q5mc"); // if ((asp->combiAR <= asp->targetAR) || ((iterations == -1) && (lastAR <= asp->combiAR))) {
+UNSUPPORTED("11dozd7gvruvmd3x164caqmgz"); // asp->prevIterations = asp->curIterations;
+UNSUPPORTED("bm7zpotfxeku2ydqqsd6twzm6"); // asp->curIterations = i;
+UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("7r2hn8bkthpfcf03lu4vnje0f"); // lastAR = asp->combiAR;
+UNSUPPORTED("9tsz1ho0itczonzjb308rql0m"); // /* Apply the FFDH algorithm to reduce the aspect ratio; */
+UNSUPPORTED("7jlj2ab1tf2kzdmzf0f14epg4"); // applyPacking2(g);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("9zv64kjrcw7u09t5lm2qsg4fw"); // /* do network flow once again... incorporating the added edges */
+UNSUPPORTED("393qo3g8b50gvp5o0tpqh29v1"); // rank1(g);
+UNSUPPORTED("ekdavoqh7w4imu35z1hk4cr27"); // computeLayerWidths(g);
+UNSUPPORTED("b1ukbsj4nhxbvn64fx7zbx7sn"); // zapLayers(g);
+UNSUPPORTED("3b5copquo4t13fbkmtbbkvo8j"); // asp->combiAR = computeCombiAR(g);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 7bn6xhopjjdriiwvcpg9wqy1y
+// void init_UF_size(graph_t * g)
+public static Object init_UF_size(Object... arg) {
+UNSUPPORTED("cqp1rfchvfwon31gknapperjh"); // void init_UF_size(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n;
+UNSUPPORTED("16hw9gw0dz2w7mrtba0eoqrdi"); // for (n = agfstnode(g); n; n = agnxtnode(g, n))
+UNSUPPORTED("2jzig41vokvwcy6z0o5dgo7sb"); // ND_UF_size(n) = 0;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 5srsfxqlego6qiyj5mm8m4ql2
+// aspect_t* setAspect (Agraph_t * g, aspect_t* adata)
+public static aspect_t setAspect(Agraph_s g, aspect_t adata) {
+ENTERING("5srsfxqlego6qiyj5mm8m4ql2","setAspect");
+try {
+ double rv;
+ CString p;
+ int r, passes = 5;
+ p = agget (g, new CString("aspect"));
+ if (N(p) || UNSUPPORTED("(r = sscanf (p, %lf,%d, &rv, &passes)) <= 0)")==null) {
+ adata.setInt("nextIter", 0);
+ adata.setInt("badGraph", 0);
+ return null;
+ }
+UNSUPPORTED("bq1l9wqiw8bcls8ptb8o9rhqi"); // agerr (AGWARN, "the aspect attribute has been disabled due to implementation flaws - attribute ignored.\n");
+UNSUPPORTED("1hvtnh8r9fb47ewad86tcf0n0"); // adata->nextIter = 0;
+UNSUPPORTED("xx058mix2zyckbi0esnoc56v"); // adata->badGraph = 0;
+UNSUPPORTED("o68dp934ebg4cplebgc5hv4v"); // return NULL;
+UNSUPPORTED("ikxv7u2qba6riujs2unqsitx"); // if (rv < 1.0) rv = 1.0;
+UNSUPPORTED("acmmvkcaf8bc8wb6kdx9s2d3a"); // else if (rv > 20.0) rv = 20.0;
+UNSUPPORTED("18wyf3ih8fg4x4s3c006nx8zx"); // adata->targetAR = rv;
+UNSUPPORTED("2875r01nyy2cpm1c439zwu6tf"); // adata->nextIter = -1;
+UNSUPPORTED("9ssjc7jsfl2jgw01gwnr3ftal"); // adata->nPasses = passes;
+UNSUPPORTED("xx058mix2zyckbi0esnoc56v"); // adata->badGraph = 0;
+UNSUPPORTED("620q0efwdrg8vw3ggwpmxqiwv"); // if (Verbose)
+UNSUPPORTED("a7heh0decro63skjh8xq4buo7"); // fprintf(stderr, "Target AR = %g\n", adata->targetAR);
+UNSUPPORTED("b1cn763x4de1h91cdv3d4o3lb"); // return adata;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+} finally {
+LEAVING("5srsfxqlego6qiyj5mm8m4ql2","setAspect");
+}
+}
+
+
+}
diff --git a/src/gen/lib/dotgen/class1__c.java b/src/gen/lib/dotgen/class1__c.java
new file mode 100644
index 0000000..fad352f
--- /dev/null
+++ b/src/gen/lib/dotgen/class1__c.java
@@ -0,0 +1,821 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * Project Info: http://plantuml.com
+ *
+ * If you like this project or if you find it useful, you can support us at:
+ *
+ * http://plantuml.com/patreon (only 1$ per month!)
+ * http://plantuml.com/paypal
+ *
+ * This file is part of Smetana.
+ * Smetana is a partial translation of Graphviz/Dot sources from C to Java.
+ *
+ * (C) Copyright 2009-2017, Arnaud Roques
+ *
+ * This translation is distributed under the same Licence as the original C program:
+ *
+ *************************************************************************
+ * Copyright (c) 2011 AT&T Intellectual Property
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: See CVS logs. Details at http://www.graphviz.org/
+ *************************************************************************
+ *
+ * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
+ * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0]
+ *
+ * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES
+ * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ *
+ * You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package gen.lib.dotgen;
+import static gen.lib.cgraph.attr__c.agxget;
+import static gen.lib.cgraph.edge__c.agfstout;
+import static gen.lib.cgraph.edge__c.aghead;
+import static gen.lib.cgraph.edge__c.agnxtout;
+import static gen.lib.cgraph.edge__c.agtail;
+import static gen.lib.cgraph.node__c.agfstnode;
+import static gen.lib.cgraph.node__c.agnxtnode;
+import static gen.lib.common.utils__c.UF_find;
+import static gen.lib.common.utils__c.mapbool;
+import static gen.lib.dotgen.cluster__c.mark_clusters;
+import static gen.lib.dotgen.fastgr__c.find_fast_edge;
+import static gen.lib.dotgen.fastgr__c.merge_oneway;
+import static gen.lib.dotgen.fastgr__c.virtual_edge;
+import static gen.lib.dotgen.fastgr__c.virtual_node;
+import static gen.lib.dotgen.position__c.make_aux_edge;
+import static smetana.core.JUtils.EQ;
+import static smetana.core.JUtilsDebug.ENTERING;
+import static smetana.core.JUtilsDebug.LEAVING;
+import static smetana.core.Macro.ED_minlen;
+import static smetana.core.Macro.ED_to_orig;
+import static smetana.core.Macro.ED_to_virt;
+import static smetana.core.Macro.ED_weight;
+import static smetana.core.Macro.GD_leader;
+import static smetana.core.Macro.ND_clust;
+import static smetana.core.Macro.ND_node_type;
+import static smetana.core.Macro.ND_rank;
+import static smetana.core.Macro.UNSUPPORTED;
+import h.Agedge_s;
+import h.Agnode_s;
+import h.Agraph_s;
+import h.boxf;
+import h.pointf;
+import smetana.core.CString;
+import smetana.core.JUtils;
+import smetana.core.Z;
+import smetana.core.__struct__;
+
+public class class1__c {
+//1 2digov3edok6d5srhgtlmrycs
+// extern lt_symlist_t lt_preloaded_symbols[]
+
+
+//1 baedz5i9est5csw3epz3cv7z
+// typedef Ppoly_t Ppolyline_t
+
+
+//1 9k44uhd5foylaeoekf3llonjq
+// extern Dtmethod_t* Dtset
+
+
+//1 1ahfywsmzcpcig2oxm7pt9ihj
+// extern Dtmethod_t* Dtbag
+
+
+//1 anhghfj3k7dmkudy2n7rvt31v
+// extern Dtmethod_t* Dtoset
+
+
+//1 5l6oj1ux946zjwvir94ykejbc
+// extern Dtmethod_t* Dtobag
+
+
+//1 2wtf222ak6cui8cfjnw6w377z
+// extern Dtmethod_t* Dtlist
+
+
+//1 d1s1s6ibtcsmst88e3057u9r7
+// extern Dtmethod_t* Dtstack
+
+
+//1 axa7mflo824p6fspjn1rdk0mt
+// extern Dtmethod_t* Dtqueue
+
+
+//1 ega812utobm4xx9oa9w9ayij6
+// extern Dtmethod_t* Dtdeque
+
+
+//1 cyfr996ur43045jv1tjbelzmj
+// extern Dtmethod_t* Dtorder
+
+
+//1 wlofoiftbjgrrabzb2brkycg
+// extern Dtmethod_t* Dttree
+
+
+//1 12bds94t7voj7ulwpcvgf6agr
+// extern Dtmethod_t* Dthash
+
+
+//1 9lqknzty480cy7zsubmabkk8h
+// extern Dtmethod_t _Dttree
+
+
+//1 bvn6zkbcp8vjdhkccqo1xrkrb
+// extern Dtmethod_t _Dthash
+
+
+//1 9lidhtd6nsmmv3e7vjv9e10gw
+// extern Dtmethod_t _Dtlist
+
+
+//1 34ujfamjxo7xn89u90oh2k6f8
+// extern Dtmethod_t _Dtqueue
+
+
+//1 3jy4aceckzkdv950h89p4wjc8
+// extern Dtmethod_t _Dtstack
+
+
+//1 8dfqgf3u1v830qzcjqh9o8ha7
+// extern Agmemdisc_t AgMemDisc
+
+
+//1 18k2oh2t6llfsdc5x0wlcnby8
+// extern Agiddisc_t AgIdDisc
+
+
+//1 a4r7hi80gdxtsv4hdoqpyiivn
+// extern Agiodisc_t AgIoDisc
+
+
+//1 bnzt5syjb7mgeru19114vd6xx
+// extern Agdisc_t AgDefaultDisc
+
+
+//1 35y2gbegsdjilegaribes00mg
+// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected
+
+
+//1 c2rygslq6bcuka3awmvy2b3ow
+// typedef Agsubnode_t Agnoderef_t
+
+
+//1 xam6yv0dcsx57dtg44igpbzn
+// typedef Dtlink_t Agedgeref_t
+
+
+//1 nye6dsi1twkbddwo9iffca1j
+// extern char *Version
+
+
+//1 65mu6k7h7lb7bx14jpiw7iyxr
+// extern char **Files
+
+
+//1 2rpjdzsdyrvomf00zcs3u3dyn
+// extern const char **Lib
+
+
+//1 6d2f111lntd2rsdt4gswh5909
+// extern char *CmdName
+
+
+//1 a0ltq04fpeg83soa05a2fkwb2
+// extern char *specificFlags
+
+
+//1 1uv30qeqq2jh6uznlr4dziv0y
+// extern char *specificItems
+
+
+//1 7i4hkvngxe3x7lmg5h6b3t9g3
+// extern char *Gvfilepath
+
+
+//1 9jp96pa73kseya3w6sulxzok6
+// extern char *Gvimagepath
+
+
+//1 40ylumfu7mrvawwf4v2asvtwk
+// extern unsigned char Verbose
+
+
+//1 93st8awjy1z0h07n28qycbaka
+// extern unsigned char Reduce
+
+
+//1 f2vs67ts992erf8onwfglurzp
+// extern int MemTest
+
+
+//1 c6f8whijgjwwagjigmxlwz3gb
+// extern char *HTTPServerEnVar
+
+
+//1 cp4hzj7p87m7arw776d3bt7aj
+// extern char *Output_file_name
+
+
+//1 a3rqagofsgraie6mx0krzkgsy
+// extern int graphviz_errors
+
+
+//1 5up05203r4kxvjn1m4njcgq5x
+// extern int Nop
+
+
+//1 umig46cco431x14b3kosde2t
+// extern double PSinputscale
+
+
+//1 52bj6v8fqz39khasobljfukk9
+// extern int Syntax_errors
+
+
+//1 9ekf2ina8fsjj6y6i0an6somj
+// extern int Show_cnt
+
+
+//1 38di5qi3nkxkq65onyvconk3r
+// extern char** Show_boxes
+
+
+//1 6ri6iu712m8mpc7t2670etpcw
+// extern int CL_type
+
+
+//1 bomxiw3gy0cgd1ydqtek7fpxr
+// extern unsigned char Concentrate
+
+
+//1 cqy3gqgcq8empdrbnrhn84058
+// extern double Epsilon
+
+
+//1 64slegfoouqeg0rmbyjrm8wgr
+// extern int MaxIter
+
+
+//1 88wdinpnmfs4mab4aw62yb0bg
+// extern int Ndim
+
+
+//1 8bbad3ogcelqnnvo5br5s05gq
+// extern int State
+
+
+//1 17rnd8q45zclfn68qqst2vxxn
+// extern int EdgeLabelsDone
+
+
+//1 ymx1z4s8cznjifl2d9f9m8jr
+// extern double Initial_dist
+
+
+//1 a33bgl0c3uqb3trx419qulj1x
+// extern double Damping
+
+
+//1 d9lvrpjg1r0ojv40pod1xwk8n
+// extern int Y_invert
+
+
+//1 71efkfs77q5tq9ex6y0f4kanh
+// extern int GvExitOnUsage
+
+
+//1 4xy2dkdkv0acs2ue9eca8hh2e
+// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin
+
+
+//1 9js5gxgzr74eakgtfhnbws3t9
+// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle
+
+
+//1 anqllp9sj7wo45w6bm11j8trn
+// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth
+
+
+//1 bh0z9puipqw7gymjd5h5b8s6i
+// extern struct fdpParms_s* fdp_parms
+
+
+
+
+//3 ciez0pfggxdljedzsbklq49f0
+// static inline point pointof(int x, int y)
+public static Object pointof(Object... arg) {
+UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x;
+UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 c1s4k85p1cdfn176o3uryeros
+// static inline pointf pointfof(double x, double y)
+public static __struct__<pointf> pointfof(double x, double y) {
+// WARNING!! STRUCT
+return pointfof_w_(x, y).copy();
+}
+private static __struct__<pointf> pointfof_w_(double x, double y) {
+ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", x);
+ r.setDouble("y", y);
+ return r;
+} finally {
+LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof");
+}
+}
+
+
+
+
+//3 7cufnfitrh935ew093mw0i4b7
+// static inline box boxof(int llx, int lly, int urx, int ury)
+public static Object boxof(Object... arg) {
+UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly;
+UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury;
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 1vvsta5i8of59frav6uymguav
+// static inline boxf boxfof(double llx, double lly, double urx, double ury)
+public static __struct__<boxf> boxfof(double llx, double lly, double urx, double ury) {
+// WARNING!! STRUCT
+return boxfof_w_(llx, lly, urx, ury).copy();
+}
+private static __struct__<boxf> boxfof_w_(double llx, double lly, double urx, double ury) {
+ENTERING("1vvsta5i8of59frav6uymguav","boxfof");
+try {
+ final __struct__<boxf> b = JUtils.from(boxf.class);
+ b.getStruct("LL").setDouble("x", llx);
+ b.getStruct("LL").setDouble("y", lly);
+ b.getStruct("UR").setDouble("x", urx);
+ b.getStruct("UR").setDouble("y", ury);
+ return b;
+} finally {
+LEAVING("1vvsta5i8of59frav6uymguav","boxfof");
+}
+}
+
+
+
+
+//3 1n5xl70wxuabyf97mclvilsm6
+// static inline point add_point(point p, point q)
+public static Object add_point(Object... arg) {
+UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x;
+UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 arrsbik9b5tnfcbzsm8gr2chx
+// static inline pointf add_pointf(pointf p, pointf q)
+public static __struct__<pointf> add_pointf(final __struct__<pointf> p, final __struct__<pointf> q) {
+// WARNING!! STRUCT
+return add_pointf_w_(p.copy(), q.copy()).copy();
+}
+private static __struct__<pointf> add_pointf_w_(final __struct__<pointf> p, final __struct__<pointf> q) {
+ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", p.getDouble("x") + q.getDouble("x"));
+ r.setDouble("y", p.getDouble("y") + q.getDouble("y"));
+ return r;
+} finally {
+LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+}
+}
+
+
+
+
+//3 ai2dprak5y6obdsflguh5qbd7
+// static inline point sub_point(point p, point q)
+public static Object sub_point(Object... arg) {
+UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 16f6pyogcv3j7n2p0n8giqqgh
+// static inline pointf sub_pointf(pointf p, pointf q)
+public static Object sub_pointf(Object... arg) {
+UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9k50jgrhc4f9824vf8ony74rw
+// static inline point mid_point(point p, point q)
+public static Object mid_point(Object... arg) {
+UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2;
+UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 59c4f7im0ftyowhnzzq2v9o1x
+// static inline pointf mid_pointf(pointf p, pointf q)
+public static Object mid_pointf(Object... arg) {
+UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.;
+UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 5r18p38gisvcx3zsvbb9saixx
+// static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+public static Object interpolate_pointf(Object... arg) {
+UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r;
+UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x);
+UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y);
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bxzrv2ghq04qk5cbyy68s4mol
+// static inline point exch_xy(point p)
+public static Object exch_xy(Object... arg) {
+UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9lt3e03tac6h6sydljrcws8fd
+// static inline pointf exch_xyf(pointf p)
+public static Object exch_xyf(Object... arg) {
+UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8l9qhieokthntzdorlu5zn29b
+// static inline box box_bb(box b0, box b1)
+public static Object box_bb(Object... arg) {
+UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 clws9h3bbjm0lw3hexf8nl4c4
+// static inline boxf boxf_bb(boxf b0, boxf b1)
+public static Object boxf_bb(Object... arg) {
+UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bit6ycxo1iqd2al92y8gkzlvb
+// static inline box box_intersect(box b0, box b1)
+public static Object box_intersect(Object... arg) {
+UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8gfybie7k6pgb3o1a6llgpwng
+// static inline boxf boxf_intersect(boxf b0, boxf b1)
+public static Object boxf_intersect(Object... arg) {
+UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 7z8j2quq65govaaejrz7b4cvb
+// static inline int box_overlap(box b0, box b1)
+public static Object box_overlap(Object... arg) {
+UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4z0suuut2acsay5m8mg9dqjdu
+// static inline int boxf_overlap(boxf b0, boxf b1)
+public static Object boxf_overlap(Object... arg) {
+UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 dd34swz5rmdgu3a2np2a4h1dy
+// static inline int box_contains(box b0, box b1)
+public static Object box_contains(Object... arg) {
+UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8laj1bspbu2i1cjd9upr7xt32
+// static inline int boxf_contains(boxf b0, boxf b1)
+public static Object boxf_contains(Object... arg) {
+UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4wf5swkz24xx51ja2dynbycu1
+// static inline pointf perp (pointf p)
+public static Object perp(Object... arg) {
+UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6dtlpzv4mvgzb9o0b252yweuv
+// static inline pointf scale (double c, pointf p)
+public static Object scale(Object... arg) {
+UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x;
+UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 2luyof8ca7ewf9r08z3os3lk7
+// int nonconstraint_edge(edge_t * e)
+public static boolean nonconstraint_edge(Agedge_s e) {
+ENTERING("2luyof8ca7ewf9r08z3os3lk7","nonconstraint_edge");
+try {
+ CString constr;
+ if (Z.z().E_constr!=null && (constr = agxget(e, Z.z().E_constr))!=null) {
+ if (constr.charAt(0)!='\0' && mapbool(constr) == false)
+ return (!(false));
+ }
+ return false;
+} finally {
+LEAVING("2luyof8ca7ewf9r08z3os3lk7","nonconstraint_edge");
+}
+}
+
+
+
+
+//3 dpimuv55sylui7jx8fh3ic1qc
+// static void interclust1(graph_t * g, node_t * t, node_t * h, edge_t * e)
+public static void interclust1(Agraph_s g, Agnode_s t, Agnode_s h, Agedge_s e) {
+ENTERING("dpimuv55sylui7jx8fh3ic1qc","interclust1");
+try {
+ Agnode_s v, t0, h0;
+ int offset, t_len, h_len, t_rank, h_rank;
+ Agedge_s rt, rh;
+ if (ND_clust(agtail(e))!=null)
+ t_rank = ND_rank(agtail(e)) - ND_rank(GD_leader(ND_clust(agtail(e))));
+ else
+ t_rank = 0;
+ if (ND_clust(aghead(e))!=null)
+ h_rank = ND_rank(aghead(e)) - ND_rank(GD_leader(ND_clust(aghead(e))));
+ else
+ h_rank = 0;
+ offset = ED_minlen(e) + t_rank - h_rank;
+ if (offset > 0) {
+ t_len = 0;
+ h_len = offset;
+ } else {
+ t_len = -offset;
+ h_len = 0;
+ }
+ v = virtual_node(g);
+ ND_node_type(v, 2);
+ t0 = UF_find(t);
+ h0 = UF_find(h);
+ rt = make_aux_edge(v, t0, t_len, 10 * ED_weight(e));
+ rh = make_aux_edge(v, h0, h_len, ED_weight(e));
+ ED_to_orig(rt, e);
+ ED_to_orig(rh, e);
+} finally {
+LEAVING("dpimuv55sylui7jx8fh3ic1qc","interclust1");
+}
+}
+
+
+
+
+//3 acy5ct6402jgf0ga5oeeskx5m
+// void class1(graph_t * g)
+public static void class1_(Agraph_s g) {
+ENTERING("acy5ct6402jgf0ga5oeeskx5m","class1");
+try {
+ Agnode_s n, t, h;
+ Agedge_s e, rep;
+ mark_clusters(g);
+ for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) {
+ for (e = agfstout(g, n); e!=null; e = agnxtout(g, e)) {
+ /* skip edges already processed */
+ if (ED_to_virt(e)!=null)
+ continue;
+ /* skip edges that we want to ignore in this phase */
+ if (nonconstraint_edge(e))
+ continue;
+ t = UF_find(agtail(e));
+ h = UF_find(aghead(e));
+ /* skip self, flat, and intra-cluster edges */
+ if (EQ(t, h))
+ continue;
+ /* inter-cluster edges require special treatment */
+ if (ND_clust(t)!=null || ND_clust(h)!=null) {
+ interclust1(g, agtail(e), aghead(e), e);
+ continue;
+ }
+ if ((rep = find_fast_edge(t, h))!=null)
+ merge_oneway(e, rep);
+ else
+ virtual_edge(t, h, e);
+ }
+ }
+} finally {
+LEAVING("acy5ct6402jgf0ga5oeeskx5m","class1");
+}
+}
+
+
+}
diff --git a/src/gen/lib/dotgen/class2__c.java b/src/gen/lib/dotgen/class2__c.java
new file mode 100644
index 0000000..843107d
--- /dev/null
+++ b/src/gen/lib/dotgen/class2__c.java
@@ -0,0 +1,1100 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * Project Info: http://plantuml.com
+ *
+ * If you like this project or if you find it useful, you can support us at:
+ *
+ * http://plantuml.com/patreon (only 1$ per month!)
+ * http://plantuml.com/paypal
+ *
+ * This file is part of Smetana.
+ * Smetana is a partial translation of Graphviz/Dot sources from C to Java.
+ *
+ * (C) Copyright 2009-2017, Arnaud Roques
+ *
+ * This translation is distributed under the same Licence as the original C program:
+ *
+ *************************************************************************
+ * Copyright (c) 2011 AT&T Intellectual Property
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: See CVS logs. Details at http://www.graphviz.org/
+ *************************************************************************
+ *
+ * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
+ * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0]
+ *
+ * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES
+ * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ *
+ * You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package gen.lib.dotgen;
+import static gen.lib.cgraph.edge__c.agedge;
+import static gen.lib.cgraph.edge__c.agfstout;
+import static gen.lib.cgraph.edge__c.aghead;
+import static gen.lib.cgraph.edge__c.agnxtout;
+import static gen.lib.cgraph.edge__c.agtail;
+import static gen.lib.cgraph.node__c.agfstnode;
+import static gen.lib.cgraph.node__c.agnxtnode;
+import static gen.lib.cgraph.obj__c.agroot;
+import static gen.lib.common.utils__c.UF_find;
+import static gen.lib.dotgen.cluster__c.build_skeleton;
+import static gen.lib.dotgen.cluster__c.mark_clusters;
+import static gen.lib.dotgen.dotinit__c.dot_root;
+import static gen.lib.dotgen.fastgr__c.fast_node;
+import static gen.lib.dotgen.fastgr__c.find_fast_edge;
+import static gen.lib.dotgen.fastgr__c.flat_edge;
+import static gen.lib.dotgen.fastgr__c.merge_oneway;
+import static gen.lib.dotgen.fastgr__c.other_edge;
+import static gen.lib.dotgen.fastgr__c.virtual_edge;
+import static gen.lib.dotgen.fastgr__c.virtual_node;
+import static gen.lib.dotgen.mincross__c.virtual_weight;
+import static gen.lib.dotgen.position__c.ports_eq;
+import static smetana.core.JUtils.EQ;
+import static smetana.core.JUtils.NEQ;
+import static smetana.core.JUtilsDebug.ENTERING;
+import static smetana.core.JUtilsDebug.LEAVING;
+import static smetana.core.Macro.ALLOC_empty;
+import static smetana.core.Macro.ED_conc_opp_flag;
+import static smetana.core.Macro.ED_count;
+import static smetana.core.Macro.ED_edge_type;
+import static smetana.core.Macro.ED_label;
+import static smetana.core.Macro.ED_label_ontop;
+import static smetana.core.Macro.ED_to_virt;
+import static smetana.core.Macro.ED_weight;
+import static smetana.core.Macro.ED_xpenalty;
+import static smetana.core.Macro.GD_clust;
+import static smetana.core.Macro.GD_comp;
+import static smetana.core.Macro.GD_flip;
+import static smetana.core.Macro.GD_n_cluster;
+import static smetana.core.Macro.GD_n_nodes;
+import static smetana.core.Macro.GD_nlist;
+import static smetana.core.Macro.GD_nodesep;
+import static smetana.core.Macro.GD_rankleader;
+import static smetana.core.Macro.MAX;
+import static smetana.core.Macro.N;
+import static smetana.core.Macro.ND_clust;
+import static smetana.core.Macro.ND_ht;
+import static smetana.core.Macro.ND_label;
+import static smetana.core.Macro.ND_lw;
+import static smetana.core.Macro.ND_out;
+import static smetana.core.Macro.ND_rank;
+import static smetana.core.Macro.ND_ranktype;
+import static smetana.core.Macro.ND_rw;
+import static smetana.core.Macro.ND_weight_class;
+import static smetana.core.Macro.NOT;
+import static smetana.core.Macro.UNSUPPORTED;
+import h.Agedge_s;
+import h.Agnode_s;
+import h.Agraph_s;
+import h.boxf;
+import h.pointf;
+import smetana.core.JUtils;
+import smetana.core.Z;
+import smetana.core.__struct__;
+
+public class class2__c {
+//1 2digov3edok6d5srhgtlmrycs
+// extern lt_symlist_t lt_preloaded_symbols[]
+
+
+//1 baedz5i9est5csw3epz3cv7z
+// typedef Ppoly_t Ppolyline_t
+
+
+//1 9k44uhd5foylaeoekf3llonjq
+// extern Dtmethod_t* Dtset
+
+
+//1 1ahfywsmzcpcig2oxm7pt9ihj
+// extern Dtmethod_t* Dtbag
+
+
+//1 anhghfj3k7dmkudy2n7rvt31v
+// extern Dtmethod_t* Dtoset
+
+
+//1 5l6oj1ux946zjwvir94ykejbc
+// extern Dtmethod_t* Dtobag
+
+
+//1 2wtf222ak6cui8cfjnw6w377z
+// extern Dtmethod_t* Dtlist
+
+
+//1 d1s1s6ibtcsmst88e3057u9r7
+// extern Dtmethod_t* Dtstack
+
+
+//1 axa7mflo824p6fspjn1rdk0mt
+// extern Dtmethod_t* Dtqueue
+
+
+//1 ega812utobm4xx9oa9w9ayij6
+// extern Dtmethod_t* Dtdeque
+
+
+//1 cyfr996ur43045jv1tjbelzmj
+// extern Dtmethod_t* Dtorder
+
+
+//1 wlofoiftbjgrrabzb2brkycg
+// extern Dtmethod_t* Dttree
+
+
+//1 12bds94t7voj7ulwpcvgf6agr
+// extern Dtmethod_t* Dthash
+
+
+//1 9lqknzty480cy7zsubmabkk8h
+// extern Dtmethod_t _Dttree
+
+
+//1 bvn6zkbcp8vjdhkccqo1xrkrb
+// extern Dtmethod_t _Dthash
+
+
+//1 9lidhtd6nsmmv3e7vjv9e10gw
+// extern Dtmethod_t _Dtlist
+
+
+//1 34ujfamjxo7xn89u90oh2k6f8
+// extern Dtmethod_t _Dtqueue
+
+
+//1 3jy4aceckzkdv950h89p4wjc8
+// extern Dtmethod_t _Dtstack
+
+
+//1 8dfqgf3u1v830qzcjqh9o8ha7
+// extern Agmemdisc_t AgMemDisc
+
+
+//1 18k2oh2t6llfsdc5x0wlcnby8
+// extern Agiddisc_t AgIdDisc
+
+
+//1 a4r7hi80gdxtsv4hdoqpyiivn
+// extern Agiodisc_t AgIoDisc
+
+
+//1 bnzt5syjb7mgeru19114vd6xx
+// extern Agdisc_t AgDefaultDisc
+
+
+//1 35y2gbegsdjilegaribes00mg
+// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected
+
+
+//1 c2rygslq6bcuka3awmvy2b3ow
+// typedef Agsubnode_t Agnoderef_t
+
+
+//1 xam6yv0dcsx57dtg44igpbzn
+// typedef Dtlink_t Agedgeref_t
+
+
+//1 nye6dsi1twkbddwo9iffca1j
+// extern char *Version
+
+
+//1 65mu6k7h7lb7bx14jpiw7iyxr
+// extern char **Files
+
+
+//1 2rpjdzsdyrvomf00zcs3u3dyn
+// extern const char **Lib
+
+
+//1 6d2f111lntd2rsdt4gswh5909
+// extern char *CmdName
+
+
+//1 a0ltq04fpeg83soa05a2fkwb2
+// extern char *specificFlags
+
+
+//1 1uv30qeqq2jh6uznlr4dziv0y
+// extern char *specificItems
+
+
+//1 7i4hkvngxe3x7lmg5h6b3t9g3
+// extern char *Gvfilepath
+
+
+//1 9jp96pa73kseya3w6sulxzok6
+// extern char *Gvimagepath
+
+
+//1 40ylumfu7mrvawwf4v2asvtwk
+// extern unsigned char Verbose
+
+
+//1 93st8awjy1z0h07n28qycbaka
+// extern unsigned char Reduce
+
+
+//1 f2vs67ts992erf8onwfglurzp
+// extern int MemTest
+
+
+//1 c6f8whijgjwwagjigmxlwz3gb
+// extern char *HTTPServerEnVar
+
+
+//1 cp4hzj7p87m7arw776d3bt7aj
+// extern char *Output_file_name
+
+
+//1 a3rqagofsgraie6mx0krzkgsy
+// extern int graphviz_errors
+
+
+//1 5up05203r4kxvjn1m4njcgq5x
+// extern int Nop
+
+
+//1 umig46cco431x14b3kosde2t
+// extern double PSinputscale
+
+
+//1 52bj6v8fqz39khasobljfukk9
+// extern int Syntax_errors
+
+
+//1 9ekf2ina8fsjj6y6i0an6somj
+// extern int Show_cnt
+
+
+//1 38di5qi3nkxkq65onyvconk3r
+// extern char** Show_boxes
+
+
+//1 6ri6iu712m8mpc7t2670etpcw
+// extern int CL_type
+
+
+//1 bomxiw3gy0cgd1ydqtek7fpxr
+// extern unsigned char Concentrate
+
+
+//1 cqy3gqgcq8empdrbnrhn84058
+// extern double Epsilon
+
+
+//1 64slegfoouqeg0rmbyjrm8wgr
+// extern int MaxIter
+
+
+//1 88wdinpnmfs4mab4aw62yb0bg
+// extern int Ndim
+
+
+//1 8bbad3ogcelqnnvo5br5s05gq
+// extern int State
+
+
+//1 17rnd8q45zclfn68qqst2vxxn
+// extern int EdgeLabelsDone
+
+
+//1 ymx1z4s8cznjifl2d9f9m8jr
+// extern double Initial_dist
+
+
+//1 a33bgl0c3uqb3trx419qulj1x
+// extern double Damping
+
+
+//1 d9lvrpjg1r0ojv40pod1xwk8n
+// extern int Y_invert
+
+
+//1 71efkfs77q5tq9ex6y0f4kanh
+// extern int GvExitOnUsage
+
+
+//1 4xy2dkdkv0acs2ue9eca8hh2e
+// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin
+
+
+//1 9js5gxgzr74eakgtfhnbws3t9
+// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle
+
+
+//1 anqllp9sj7wo45w6bm11j8trn
+// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth
+
+
+//1 bh0z9puipqw7gymjd5h5b8s6i
+// extern struct fdpParms_s* fdp_parms
+
+
+
+
+//3 ciez0pfggxdljedzsbklq49f0
+// static inline point pointof(int x, int y)
+public static Object pointof(Object... arg) {
+UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x;
+UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 c1s4k85p1cdfn176o3uryeros
+// static inline pointf pointfof(double x, double y)
+public static __struct__<pointf> pointfof(double x, double y) {
+// WARNING!! STRUCT
+return pointfof_w_(x, y).copy();
+}
+private static __struct__<pointf> pointfof_w_(double x, double y) {
+ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", x);
+ r.setDouble("y", y);
+ return r;
+} finally {
+LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof");
+}
+}
+
+
+
+
+//3 7cufnfitrh935ew093mw0i4b7
+// static inline box boxof(int llx, int lly, int urx, int ury)
+public static Object boxof(Object... arg) {
+UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly;
+UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury;
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 1vvsta5i8of59frav6uymguav
+// static inline boxf boxfof(double llx, double lly, double urx, double ury)
+public static __struct__<boxf> boxfof(double llx, double lly, double urx, double ury) {
+// WARNING!! STRUCT
+return boxfof_w_(llx, lly, urx, ury).copy();
+}
+private static __struct__<boxf> boxfof_w_(double llx, double lly, double urx, double ury) {
+ENTERING("1vvsta5i8of59frav6uymguav","boxfof");
+try {
+ final __struct__<boxf> b = JUtils.from(boxf.class);
+ b.getStruct("LL").setDouble("x", llx);
+ b.getStruct("LL").setDouble("y", lly);
+ b.getStruct("UR").setDouble("x", urx);
+ b.getStruct("UR").setDouble("y", ury);
+ return b;
+} finally {
+LEAVING("1vvsta5i8of59frav6uymguav","boxfof");
+}
+}
+
+
+
+
+//3 1n5xl70wxuabyf97mclvilsm6
+// static inline point add_point(point p, point q)
+public static Object add_point(Object... arg) {
+UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x;
+UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 arrsbik9b5tnfcbzsm8gr2chx
+// static inline pointf add_pointf(pointf p, pointf q)
+public static __struct__<pointf> add_pointf(final __struct__<pointf> p, final __struct__<pointf> q) {
+// WARNING!! STRUCT
+return add_pointf_w_(p.copy(), q.copy()).copy();
+}
+private static __struct__<pointf> add_pointf_w_(final __struct__<pointf> p, final __struct__<pointf> q) {
+ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", p.getDouble("x") + q.getDouble("x"));
+ r.setDouble("y", p.getDouble("y") + q.getDouble("y"));
+ return r;
+} finally {
+LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+}
+}
+
+
+
+
+//3 ai2dprak5y6obdsflguh5qbd7
+// static inline point sub_point(point p, point q)
+public static Object sub_point(Object... arg) {
+UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 16f6pyogcv3j7n2p0n8giqqgh
+// static inline pointf sub_pointf(pointf p, pointf q)
+public static Object sub_pointf(Object... arg) {
+UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9k50jgrhc4f9824vf8ony74rw
+// static inline point mid_point(point p, point q)
+public static Object mid_point(Object... arg) {
+UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2;
+UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 59c4f7im0ftyowhnzzq2v9o1x
+// static inline pointf mid_pointf(pointf p, pointf q)
+public static Object mid_pointf(Object... arg) {
+UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.;
+UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 5r18p38gisvcx3zsvbb9saixx
+// static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+public static Object interpolate_pointf(Object... arg) {
+UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r;
+UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x);
+UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y);
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bxzrv2ghq04qk5cbyy68s4mol
+// static inline point exch_xy(point p)
+public static Object exch_xy(Object... arg) {
+UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9lt3e03tac6h6sydljrcws8fd
+// static inline pointf exch_xyf(pointf p)
+public static Object exch_xyf(Object... arg) {
+UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8l9qhieokthntzdorlu5zn29b
+// static inline box box_bb(box b0, box b1)
+public static Object box_bb(Object... arg) {
+UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 clws9h3bbjm0lw3hexf8nl4c4
+// static inline boxf boxf_bb(boxf b0, boxf b1)
+public static Object boxf_bb(Object... arg) {
+UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bit6ycxo1iqd2al92y8gkzlvb
+// static inline box box_intersect(box b0, box b1)
+public static Object box_intersect(Object... arg) {
+UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8gfybie7k6pgb3o1a6llgpwng
+// static inline boxf boxf_intersect(boxf b0, boxf b1)
+public static Object boxf_intersect(Object... arg) {
+UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 7z8j2quq65govaaejrz7b4cvb
+// static inline int box_overlap(box b0, box b1)
+public static Object box_overlap(Object... arg) {
+UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4z0suuut2acsay5m8mg9dqjdu
+// static inline int boxf_overlap(boxf b0, boxf b1)
+public static Object boxf_overlap(Object... arg) {
+UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 dd34swz5rmdgu3a2np2a4h1dy
+// static inline int box_contains(box b0, box b1)
+public static Object box_contains(Object... arg) {
+UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8laj1bspbu2i1cjd9upr7xt32
+// static inline int boxf_contains(boxf b0, boxf b1)
+public static Object boxf_contains(Object... arg) {
+UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4wf5swkz24xx51ja2dynbycu1
+// static inline pointf perp (pointf p)
+public static Object perp(Object... arg) {
+UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6dtlpzv4mvgzb9o0b252yweuv
+// static inline pointf scale (double c, pointf p)
+public static Object scale(Object... arg) {
+UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x;
+UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 2zn7c6ulmwwzaibdxo127jf04
+// static node_t* label_vnode(graph_t * g, edge_t * orig)
+public static Agnode_s label_vnode(Agraph_s g, Agedge_s orig) {
+ENTERING("2zn7c6ulmwwzaibdxo127jf04","label_vnode");
+try {
+ Agnode_s v;
+ final __struct__<pointf> dimen = JUtils.from(pointf.class);
+ dimen.___(ED_label(orig).getStruct("dimen"));
+ v = virtual_node(g);
+ ND_label(v, ED_label(orig));
+ ND_lw(v, GD_nodesep(agroot(v)));
+ if (N(ED_label_ontop(orig))) {
+ if (GD_flip(agroot(g))!=0) {
+ ND_ht(v, dimen.getDouble("x"));
+ ND_rw(v, dimen.getDouble("y"));
+ } else {
+ ND_ht(v, dimen.getDouble("y"));
+ ND_rw(v, dimen.getDouble("x"));
+ }
+ }
+ return v;
+} finally {
+LEAVING("2zn7c6ulmwwzaibdxo127jf04","label_vnode");
+}
+}
+
+
+
+
+//3 49tji49jdm9uges7v8lf2j2rn
+// static void incr_width(graph_t * g, node_t * v)
+public static void incr_width(Agraph_s g, Agnode_s v) {
+ENTERING("49tji49jdm9uges7v8lf2j2rn","incr_width");
+try {
+ int width = GD_nodesep(g) / 2;
+ ND_lw(v, ND_lw(v) + width);
+ ND_rw(v, ND_rw(v) + width);
+} finally {
+LEAVING("49tji49jdm9uges7v8lf2j2rn","incr_width");
+}
+}
+
+
+
+
+//3 xujihq6vep3ez275shtrbilo
+// static node_t* plain_vnode(graph_t * g, edge_t * orig)
+public static Agnode_s plain_vnode(Agraph_s g, Agedge_s orig) {
+ENTERING("xujihq6vep3ez275shtrbilo","plain_vnode");
+try {
+ Agnode_s v;
+ orig = orig;
+ v = virtual_node(g);
+ incr_width(g, v);
+ return v;
+} finally {
+LEAVING("xujihq6vep3ez275shtrbilo","plain_vnode");
+}
+}
+
+
+
+
+//3 9fmfj1b2jik7skv6ms0657t8r
+// static node_t* leader_of(graph_t * g, node_t * v)
+public static Agnode_s leader_of(Agraph_s g, Agnode_s v) {
+ENTERING("9fmfj1b2jik7skv6ms0657t8r","leader_of");
+try {
+ Agraph_s clust;
+ Agnode_s rv;
+ if (ND_ranktype(v) != 7) {
+ /*assert(v == UF_find(v)); could be leaf, so comment out */
+ rv = UF_find(v);
+ } else {
+ clust = ND_clust(v);
+ rv = (Agnode_s) GD_rankleader(clust).plus(ND_rank(v)).getPtr();
+ }
+ return rv;
+} finally {
+LEAVING("9fmfj1b2jik7skv6ms0657t8r","leader_of");
+}
+}
+
+
+
+
+//3 6sbvlvurvkodunw2qt1ug70c2
+// static void make_chain(graph_t * g, node_t * from, node_t * to, edge_t * orig)
+public static void make_chain(Agraph_s g, Agnode_s from, Agnode_s to, Agedge_s orig) {
+ENTERING("6sbvlvurvkodunw2qt1ug70c2","make_chain");
+try {
+ int r, label_rank;
+ Agnode_s u, v=null;
+ Agedge_s e;
+ u = from;
+ if (ED_label(orig)!=null)
+ label_rank = (ND_rank(from) + ND_rank(to)) / 2;
+ else
+ label_rank = -1;
+ //assert(ED_to_virt(orig) == NULL);
+ for (r = ND_rank(from) + 1; r <= ND_rank(to); r++) {
+ if (r < ND_rank(to)) {
+ if (r == label_rank)
+ v = label_vnode(g, orig);
+ else
+ v = plain_vnode(g, orig);
+ ND_rank(v, r);
+ } else
+ v = to;
+ e = virtual_edge(u, v, orig);
+ virtual_weight(e);
+ u = v;
+ }
+ // assert(ED_to_virt(orig) != NULL);
+} finally {
+LEAVING("6sbvlvurvkodunw2qt1ug70c2","make_chain");
+}
+}
+
+
+
+
+//3 659ld5tcseo3l0hopxb3pf0vv
+// static void interclrep(graph_t * g, edge_t * e)
+public static void interclrep(Agraph_s g, Agedge_s e) {
+ENTERING("659ld5tcseo3l0hopxb3pf0vv","interclrep");
+try {
+ Agnode_s t, h;
+ Agedge_s ve;
+ t = leader_of(g, agtail(e));
+ h = leader_of(g, aghead(e));
+ if (ND_rank(t) > ND_rank(h)) {
+ Agnode_s t0 = t;
+ t = h;
+ h = t0;
+ }
+ if (NEQ(ND_clust(t), ND_clust(h))) {
+ if ((ve = find_fast_edge(t, h))!=null) {
+ merge_chain(g, e, ve, NOT(false));
+ return;
+ }
+ if (ND_rank(t) == ND_rank(h))
+ return;
+ make_chain(g, t, h, e);
+ /* mark as cluster edge */
+ for (ve = ED_to_virt(e); ve!=null && (ND_rank(aghead(ve)) <= ND_rank(h));
+ ve = (Agedge_s) ND_out(aghead(ve)).getFromList(0))
+ ED_edge_type(ve, 5);
+ }
+ /* else ignore intra-cluster edges at this point */
+} finally {
+LEAVING("659ld5tcseo3l0hopxb3pf0vv","interclrep");
+}
+}
+
+
+
+
+//3 c0cx00ki1i1kx0bp84e7xjg8d
+// static int is_cluster_edge(edge_t * e)
+public static boolean is_cluster_edge(Agedge_s e) {
+ENTERING("c0cx00ki1i1kx0bp84e7xjg8d","is_cluster_edge");
+try {
+ return ((ND_ranktype(agtail(e)) == 7)
+ || (ND_ranktype(aghead(e)) == 7));
+} finally {
+LEAVING("c0cx00ki1i1kx0bp84e7xjg8d","is_cluster_edge");
+}
+}
+
+
+
+
+//3 c45973dtaighb3u0auuekcs1y
+// void merge_chain(graph_t * g, edge_t * e, edge_t * f, int flag)
+public static void merge_chain(Agraph_s g, Agedge_s e, Agedge_s f, boolean flag) {
+ENTERING("c45973dtaighb3u0auuekcs1y","merge_chain");
+try {
+ Agedge_s rep;
+ int lastrank = MAX(ND_rank(agtail(e)), ND_rank(aghead(e)));
+ //assert(ED_to_virt(e) == NULL);
+ ED_to_virt(e, f);
+ rep = f;
+ do {
+ /* interclust multi-edges are not counted now */
+ if (flag)
+ ED_count(rep, ED_count(rep) + ED_count(e));
+ ED_xpenalty(rep, ED_xpenalty(rep) + ED_xpenalty(e));
+ ED_weight(rep, ED_weight(rep) + ED_weight(e));
+ if (ND_rank(aghead(rep)) == lastrank)
+ break;
+ incr_width(g, aghead(rep));
+ rep = (Agedge_s) ND_out(aghead(rep)).getFromList(0);
+ } while (rep!=null);
+} finally {
+LEAVING("c45973dtaighb3u0auuekcs1y","merge_chain");
+}
+}
+
+
+
+
+//3 bg5r9wlego0d8pv0hr96zt45c
+// int mergeable(edge_t * e, edge_t * f)
+public static boolean mergeable(Agedge_s e, Agedge_s f) {
+ENTERING("bg5r9wlego0d8pv0hr96zt45c","mergeable");
+try {
+ if (e!=null && f!=null && EQ(agtail(e), agtail(f)) && EQ(aghead(e), aghead(f)) &&
+ EQ(ED_label(e), ED_label(f)) && ports_eq(e, f))
+ return NOT(false);
+ return false;
+} finally {
+LEAVING("bg5r9wlego0d8pv0hr96zt45c","mergeable");
+}
+}
+
+
+
+
+//3 d0bxlkysxucmww7t74u9krrgz
+// void class2(graph_t * g)
+public static void class2(Agraph_s g) {
+ENTERING("d0bxlkysxucmww7t74u9krrgz","class2");
+try {
+ int c;
+ Agnode_s n, t, h;
+ Agedge_s e, prev, opp;
+ GD_nlist(g, null);
+ GD_n_nodes(g, 0); /* new */
+ mark_clusters(g);
+ for (c = 1; c <= GD_n_cluster(g); c++)
+ build_skeleton(g, (Agraph_s) GD_clust(g).plus(c).getPtr());
+ for (n = agfstnode(g); n!=null; n = agnxtnode(g, n))
+ for (e = agfstout(g, n); e!=null; e = agnxtout(g, e)) {
+ if (ND_weight_class(aghead(e)) <= 2)
+ ND_weight_class(aghead(e), ND_weight_class(aghead(e))+1);
+ if (ND_weight_class(agtail(e)) <= 2)
+ ND_weight_class(agtail(e), ND_weight_class(agtail(e))+1);
+ }
+ for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) {
+ if ((ND_clust(n) == null) && (EQ(n, UF_find(n)))) {
+ fast_node(g, n);
+ GD_n_nodes(g, GD_n_nodes(g)+1);
+ }
+ prev = null;
+ for (e = agfstout(g, n); e!=null; e = agnxtout(g, e)) {
+ /* already processed */
+ if (ED_to_virt(e)!=null) {
+ prev = e;
+ continue;
+ }
+ /* edges involving sub-clusters of g */
+ if (is_cluster_edge(e)) {
+ /* following is new cluster multi-edge code */
+ if (mergeable(prev, e)) {
+ if (ED_to_virt(prev)!=null) {
+ merge_chain(g, e, ED_to_virt(prev), false);
+ other_edge(e);
+ } else if (ND_rank(agtail(e)) == ND_rank(aghead(e))) {
+ merge_oneway(e, prev);
+ other_edge(e);
+ }
+ /* else is an intra-cluster edge */
+ continue;
+ }
+ interclrep(g, e);
+ prev = e;
+ continue;
+ }
+ /* merge multi-edges */
+ if (prev!=null && EQ(agtail(e), agtail(prev)) && EQ(aghead(e), aghead(prev))) {
+ if (ND_rank(agtail(e)) == ND_rank(aghead(e))) {
+ merge_oneway(e, prev);
+ other_edge(e);
+ continue;
+ }
+ if ((ED_label(e) == null) && (ED_label(prev) == null)
+ && ports_eq(e, prev)) {
+ if (Z.z().Concentrate)
+ ED_edge_type(e, 6);
+ else {
+ merge_chain(g, e, ED_to_virt(prev), NOT(false));
+ other_edge(e);
+ }
+ continue;
+ }
+ /* parallel edges with different labels fall through here */
+ }
+ /* self edges */
+ if (EQ(agtail(e), aghead(e))) {
+ other_edge(e);
+ prev = e;
+ continue;
+ }
+ t = UF_find(agtail(e));
+ h = UF_find(aghead(e));
+ /* non-leader leaf nodes */
+ if (NEQ(agtail(e), t) || NEQ(aghead(e), h)) {
+ /* FIX need to merge stuff */
+ continue;
+ }
+ /* flat edges */
+ if (ND_rank(agtail(e)) == ND_rank(aghead(e))) {
+ flat_edge(g, e);
+ prev = e;
+ continue;
+ }
+ /* forward edges */
+ if (ND_rank(aghead(e)) > ND_rank(agtail(e))) {
+ make_chain(g, agtail(e), aghead(e), e);
+ prev = e;
+ continue;
+ }
+ /* backward edges */
+ else {
+ /*other_edge(e); */
+ /* avoid when opp==e in undirected graph */
+ if ((opp = (agedge(g,aghead(e),agtail(e),null,false)))!=null && NEQ(aghead(opp), aghead(e))) {
+ /* shadows a forward edge */
+ if (ED_to_virt(opp) == null)
+ make_chain(g, agtail(opp), aghead(opp), opp);
+ if ((ED_label(e) == null) && (ED_label(opp) == null)
+ && ports_eq(e, opp)) {
+ if (Z.z().Concentrate) {
+ ED_edge_type(e, 6);
+ ED_conc_opp_flag(opp, NOT(false));
+ } else { /* see above. this is getting out of hand */
+ other_edge(e);
+ merge_chain(g, e, ED_to_virt(opp), NOT(false));
+ }
+ continue;
+ }
+ }
+ make_chain(g, aghead(e), agtail(e), e);
+ prev = e;
+ }
+ }
+ }
+ /* since decompose() is not called on subgraphs */
+ if (NEQ(g, dot_root(g))) {
+ GD_comp(g).reallocEmpty(1, Agnode_s.class);
+ GD_comp(g).setInList(0, GD_nlist(g));
+ }
+} finally {
+LEAVING("d0bxlkysxucmww7t74u9krrgz","class2");
+}
+}
+
+
+}
diff --git a/src/gen/lib/dotgen/cluster__c.java b/src/gen/lib/dotgen/cluster__c.java
new file mode 100644
index 0000000..9befefa
--- /dev/null
+++ b/src/gen/lib/dotgen/cluster__c.java
@@ -0,0 +1,1280 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * Project Info: http://plantuml.com
+ *
+ * If you like this project or if you find it useful, you can support us at:
+ *
+ * http://plantuml.com/patreon (only 1$ per month!)
+ * http://plantuml.com/paypal
+ *
+ * This file is part of Smetana.
+ * Smetana is a partial translation of Graphviz/Dot sources from C to Java.
+ *
+ * (C) Copyright 2009-2017, Arnaud Roques
+ *
+ * This translation is distributed under the same Licence as the original C program:
+ *
+ *************************************************************************
+ * Copyright (c) 2011 AT&T Intellectual Property
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: See CVS logs. Details at http://www.graphviz.org/
+ *************************************************************************
+ *
+ * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
+ * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0]
+ *
+ * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES
+ * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ *
+ * You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package gen.lib.dotgen;
+import static gen.lib.cgraph.edge__c.agfstedge;
+import static gen.lib.cgraph.edge__c.agfstout;
+import static gen.lib.cgraph.edge__c.aghead;
+import static gen.lib.cgraph.edge__c.agnxtedge;
+import static gen.lib.cgraph.edge__c.agnxtout;
+import static gen.lib.cgraph.edge__c.agtail;
+import static gen.lib.cgraph.node__c.agfstnode;
+import static gen.lib.cgraph.node__c.agnxtnode;
+import static gen.lib.cgraph.obj__c.agcontains;
+import static gen.lib.cgraph.obj__c.agroot;
+import static gen.lib.common.memory__c.zmalloc;
+import static gen.lib.common.utils__c.UF_setname;
+import static gen.lib.common.utils__c.UF_singleton;
+import static gen.lib.dotgen.class2__c.class2;
+import static gen.lib.dotgen.class2__c.mergeable;
+import static gen.lib.dotgen.dotinit__c.dot_root;
+import static gen.lib.dotgen.fastgr__c.delete_fast_edge;
+import static gen.lib.dotgen.fastgr__c.delete_fast_node;
+import static gen.lib.dotgen.fastgr__c.fast_node;
+import static gen.lib.dotgen.fastgr__c.find_fast_edge;
+import static gen.lib.dotgen.fastgr__c.find_flat_edge;
+import static gen.lib.dotgen.fastgr__c.flat_edge;
+import static gen.lib.dotgen.fastgr__c.merge_oneway;
+import static gen.lib.dotgen.fastgr__c.other_edge;
+import static gen.lib.dotgen.fastgr__c.virtual_edge;
+import static gen.lib.dotgen.fastgr__c.virtual_node;
+import static gen.lib.dotgen.mincross__c.allocate_ranks;
+import static gen.lib.dotgen.mincross__c.build_ranks;
+import static gen.lib.dotgen.mincross__c.enqueue_neighbors;
+import static gen.lib.dotgen.mincross__c.install_in_rank;
+import static gen.lib.dotgen.position__c.ports_eq;
+import static smetana.core.JUtils.EQ;
+import static smetana.core.JUtils.NEQ;
+import static smetana.core.JUtils.sizeof_starstar_empty;
+import static smetana.core.JUtilsDebug.ENTERING;
+import static smetana.core.JUtilsDebug.LEAVING;
+import static smetana.core.Macro.AGMKOUT;
+import static smetana.core.Macro.ED_count;
+import static smetana.core.Macro.ED_edge_type;
+import static smetana.core.Macro.ED_to_virt;
+import static smetana.core.Macro.ED_xpenalty;
+import static smetana.core.Macro.GD_clust;
+import static smetana.core.Macro.GD_comp;
+import static smetana.core.Macro.GD_expanded;
+import static smetana.core.Macro.GD_installed;
+import static smetana.core.Macro.GD_leader;
+import static smetana.core.Macro.GD_maxrank;
+import static smetana.core.Macro.GD_minrank;
+import static smetana.core.Macro.GD_n_cluster;
+import static smetana.core.Macro.GD_n_nodes;
+import static smetana.core.Macro.GD_nlist;
+import static smetana.core.Macro.GD_rank;
+import static smetana.core.Macro.GD_rankleader;
+import static smetana.core.Macro.ND_UF_size;
+import static smetana.core.Macro.ND_clust;
+import static smetana.core.Macro.ND_in;
+import static smetana.core.Macro.ND_lw;
+import static smetana.core.Macro.ND_node_type;
+import static smetana.core.Macro.ND_order;
+import static smetana.core.Macro.ND_out;
+import static smetana.core.Macro.ND_rank;
+import static smetana.core.Macro.ND_ranktype;
+import static smetana.core.Macro.ND_rw;
+import static smetana.core.Macro.NOT;
+import static smetana.core.Macro.UNSUPPORTED;
+import h.Agedge_s;
+import h.Agnode_s;
+import h.Agraph_s;
+import h.boxf;
+import h.nodequeue;
+import h.pointf;
+import smetana.core.JUtils;
+import smetana.core.__ptr__;
+import smetana.core.__struct__;
+
+public class cluster__c {
+//1 2digov3edok6d5srhgtlmrycs
+// extern lt_symlist_t lt_preloaded_symbols[]
+
+
+//1 baedz5i9est5csw3epz3cv7z
+// typedef Ppoly_t Ppolyline_t
+
+
+//1 9k44uhd5foylaeoekf3llonjq
+// extern Dtmethod_t* Dtset
+
+
+//1 1ahfywsmzcpcig2oxm7pt9ihj
+// extern Dtmethod_t* Dtbag
+
+
+//1 anhghfj3k7dmkudy2n7rvt31v
+// extern Dtmethod_t* Dtoset
+
+
+//1 5l6oj1ux946zjwvir94ykejbc
+// extern Dtmethod_t* Dtobag
+
+
+//1 2wtf222ak6cui8cfjnw6w377z
+// extern Dtmethod_t* Dtlist
+
+
+//1 d1s1s6ibtcsmst88e3057u9r7
+// extern Dtmethod_t* Dtstack
+
+
+//1 axa7mflo824p6fspjn1rdk0mt
+// extern Dtmethod_t* Dtqueue
+
+
+//1 ega812utobm4xx9oa9w9ayij6
+// extern Dtmethod_t* Dtdeque
+
+
+//1 cyfr996ur43045jv1tjbelzmj
+// extern Dtmethod_t* Dtorder
+
+
+//1 wlofoiftbjgrrabzb2brkycg
+// extern Dtmethod_t* Dttree
+
+
+//1 12bds94t7voj7ulwpcvgf6agr
+// extern Dtmethod_t* Dthash
+
+
+//1 9lqknzty480cy7zsubmabkk8h
+// extern Dtmethod_t _Dttree
+
+
+//1 bvn6zkbcp8vjdhkccqo1xrkrb
+// extern Dtmethod_t _Dthash
+
+
+//1 9lidhtd6nsmmv3e7vjv9e10gw
+// extern Dtmethod_t _Dtlist
+
+
+//1 34ujfamjxo7xn89u90oh2k6f8
+// extern Dtmethod_t _Dtqueue
+
+
+//1 3jy4aceckzkdv950h89p4wjc8
+// extern Dtmethod_t _Dtstack
+
+
+//1 8dfqgf3u1v830qzcjqh9o8ha7
+// extern Agmemdisc_t AgMemDisc
+
+
+//1 18k2oh2t6llfsdc5x0wlcnby8
+// extern Agiddisc_t AgIdDisc
+
+
+//1 a4r7hi80gdxtsv4hdoqpyiivn
+// extern Agiodisc_t AgIoDisc
+
+
+//1 bnzt5syjb7mgeru19114vd6xx
+// extern Agdisc_t AgDefaultDisc
+
+
+//1 35y2gbegsdjilegaribes00mg
+// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected
+
+
+//1 c2rygslq6bcuka3awmvy2b3ow
+// typedef Agsubnode_t Agnoderef_t
+
+
+//1 xam6yv0dcsx57dtg44igpbzn
+// typedef Dtlink_t Agedgeref_t
+
+
+//1 nye6dsi1twkbddwo9iffca1j
+// extern char *Version
+
+
+//1 65mu6k7h7lb7bx14jpiw7iyxr
+// extern char **Files
+
+
+//1 2rpjdzsdyrvomf00zcs3u3dyn
+// extern const char **Lib
+
+
+//1 6d2f111lntd2rsdt4gswh5909
+// extern char *CmdName
+
+
+//1 a0ltq04fpeg83soa05a2fkwb2
+// extern char *specificFlags
+
+
+//1 1uv30qeqq2jh6uznlr4dziv0y
+// extern char *specificItems
+
+
+//1 7i4hkvngxe3x7lmg5h6b3t9g3
+// extern char *Gvfilepath
+
+
+//1 9jp96pa73kseya3w6sulxzok6
+// extern char *Gvimagepath
+
+
+//1 40ylumfu7mrvawwf4v2asvtwk
+// extern unsigned char Verbose
+
+
+//1 93st8awjy1z0h07n28qycbaka
+// extern unsigned char Reduce
+
+
+//1 f2vs67ts992erf8onwfglurzp
+// extern int MemTest
+
+
+//1 c6f8whijgjwwagjigmxlwz3gb
+// extern char *HTTPServerEnVar
+
+
+//1 cp4hzj7p87m7arw776d3bt7aj
+// extern char *Output_file_name
+
+
+//1 a3rqagofsgraie6mx0krzkgsy
+// extern int graphviz_errors
+
+
+//1 5up05203r4kxvjn1m4njcgq5x
+// extern int Nop
+
+
+//1 umig46cco431x14b3kosde2t
+// extern double PSinputscale
+
+
+//1 52bj6v8fqz39khasobljfukk9
+// extern int Syntax_errors
+
+
+//1 9ekf2ina8fsjj6y6i0an6somj
+// extern int Show_cnt
+
+
+//1 38di5qi3nkxkq65onyvconk3r
+// extern char** Show_boxes
+
+
+//1 6ri6iu712m8mpc7t2670etpcw
+// extern int CL_type
+
+
+//1 bomxiw3gy0cgd1ydqtek7fpxr
+// extern unsigned char Concentrate
+
+
+//1 cqy3gqgcq8empdrbnrhn84058
+// extern double Epsilon
+
+
+//1 64slegfoouqeg0rmbyjrm8wgr
+// extern int MaxIter
+
+
+//1 88wdinpnmfs4mab4aw62yb0bg
+// extern int Ndim
+
+
+//1 8bbad3ogcelqnnvo5br5s05gq
+// extern int State
+
+
+//1 17rnd8q45zclfn68qqst2vxxn
+// extern int EdgeLabelsDone
+
+
+//1 ymx1z4s8cznjifl2d9f9m8jr
+// extern double Initial_dist
+
+
+//1 a33bgl0c3uqb3trx419qulj1x
+// extern double Damping
+
+
+//1 d9lvrpjg1r0ojv40pod1xwk8n
+// extern int Y_invert
+
+
+//1 71efkfs77q5tq9ex6y0f4kanh
+// extern int GvExitOnUsage
+
+
+//1 4xy2dkdkv0acs2ue9eca8hh2e
+// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin
+
+
+//1 9js5gxgzr74eakgtfhnbws3t9
+// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle
+
+
+//1 anqllp9sj7wo45w6bm11j8trn
+// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth
+
+
+//1 bh0z9puipqw7gymjd5h5b8s6i
+// extern struct fdpParms_s* fdp_parms
+
+
+
+
+//3 ciez0pfggxdljedzsbklq49f0
+// static inline point pointof(int x, int y)
+public static Object pointof(Object... arg) {
+UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x;
+UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 c1s4k85p1cdfn176o3uryeros
+// static inline pointf pointfof(double x, double y)
+public static __struct__<pointf> pointfof(double x, double y) {
+// WARNING!! STRUCT
+return pointfof_w_(x, y).copy();
+}
+private static __struct__<pointf> pointfof_w_(double x, double y) {
+ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", x);
+ r.setDouble("y", y);
+ return r;
+} finally {
+LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof");
+}
+}
+
+
+
+
+//3 7cufnfitrh935ew093mw0i4b7
+// static inline box boxof(int llx, int lly, int urx, int ury)
+public static Object boxof(Object... arg) {
+UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly;
+UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury;
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 1vvsta5i8of59frav6uymguav
+// static inline boxf boxfof(double llx, double lly, double urx, double ury)
+public static __struct__<boxf> boxfof(double llx, double lly, double urx, double ury) {
+// WARNING!! STRUCT
+return boxfof_w_(llx, lly, urx, ury).copy();
+}
+private static __struct__<boxf> boxfof_w_(double llx, double lly, double urx, double ury) {
+ENTERING("1vvsta5i8of59frav6uymguav","boxfof");
+try {
+ final __struct__<boxf> b = JUtils.from(boxf.class);
+ b.getStruct("LL").setDouble("x", llx);
+ b.getStruct("LL").setDouble("y", lly);
+ b.getStruct("UR").setDouble("x", urx);
+ b.getStruct("UR").setDouble("y", ury);
+ return b;
+} finally {
+LEAVING("1vvsta5i8of59frav6uymguav","boxfof");
+}
+}
+
+
+
+
+//3 1n5xl70wxuabyf97mclvilsm6
+// static inline point add_point(point p, point q)
+public static Object add_point(Object... arg) {
+UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x;
+UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 arrsbik9b5tnfcbzsm8gr2chx
+// static inline pointf add_pointf(pointf p, pointf q)
+public static __struct__<pointf> add_pointf(final __struct__<pointf> p, final __struct__<pointf> q) {
+// WARNING!! STRUCT
+return add_pointf_w_(p.copy(), q.copy()).copy();
+}
+private static __struct__<pointf> add_pointf_w_(final __struct__<pointf> p, final __struct__<pointf> q) {
+ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", p.getDouble("x") + q.getDouble("x"));
+ r.setDouble("y", p.getDouble("y") + q.getDouble("y"));
+ return r;
+} finally {
+LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+}
+}
+
+
+
+
+//3 ai2dprak5y6obdsflguh5qbd7
+// static inline point sub_point(point p, point q)
+public static Object sub_point(Object... arg) {
+UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 16f6pyogcv3j7n2p0n8giqqgh
+// static inline pointf sub_pointf(pointf p, pointf q)
+public static Object sub_pointf(Object... arg) {
+UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9k50jgrhc4f9824vf8ony74rw
+// static inline point mid_point(point p, point q)
+public static Object mid_point(Object... arg) {
+UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2;
+UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 59c4f7im0ftyowhnzzq2v9o1x
+// static inline pointf mid_pointf(pointf p, pointf q)
+public static Object mid_pointf(Object... arg) {
+UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.;
+UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 5r18p38gisvcx3zsvbb9saixx
+// static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+public static Object interpolate_pointf(Object... arg) {
+UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r;
+UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x);
+UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y);
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bxzrv2ghq04qk5cbyy68s4mol
+// static inline point exch_xy(point p)
+public static Object exch_xy(Object... arg) {
+UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9lt3e03tac6h6sydljrcws8fd
+// static inline pointf exch_xyf(pointf p)
+public static Object exch_xyf(Object... arg) {
+UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8l9qhieokthntzdorlu5zn29b
+// static inline box box_bb(box b0, box b1)
+public static Object box_bb(Object... arg) {
+UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 clws9h3bbjm0lw3hexf8nl4c4
+// static inline boxf boxf_bb(boxf b0, boxf b1)
+public static Object boxf_bb(Object... arg) {
+UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bit6ycxo1iqd2al92y8gkzlvb
+// static inline box box_intersect(box b0, box b1)
+public static Object box_intersect(Object... arg) {
+UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8gfybie7k6pgb3o1a6llgpwng
+// static inline boxf boxf_intersect(boxf b0, boxf b1)
+public static Object boxf_intersect(Object... arg) {
+UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 7z8j2quq65govaaejrz7b4cvb
+// static inline int box_overlap(box b0, box b1)
+public static Object box_overlap(Object... arg) {
+UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4z0suuut2acsay5m8mg9dqjdu
+// static inline int boxf_overlap(boxf b0, boxf b1)
+public static Object boxf_overlap(Object... arg) {
+UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 dd34swz5rmdgu3a2np2a4h1dy
+// static inline int box_contains(box b0, box b1)
+public static Object box_contains(Object... arg) {
+UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8laj1bspbu2i1cjd9upr7xt32
+// static inline int boxf_contains(boxf b0, boxf b1)
+public static Object boxf_contains(Object... arg) {
+UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4wf5swkz24xx51ja2dynbycu1
+// static inline pointf perp (pointf p)
+public static Object perp(Object... arg) {
+UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6dtlpzv4mvgzb9o0b252yweuv
+// static inline pointf scale (double c, pointf p)
+public static Object scale(Object... arg) {
+UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x;
+UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8bd317q0mykfu6wpr3e4cxmh2
+// static node_t* map_interclust_node(node_t * n)
+public static Agnode_s map_interclust_node(Agnode_s n) {
+ENTERING("8bd317q0mykfu6wpr3e4cxmh2","map_interclust_node");
+try {
+ Agnode_s rv;
+ if ((ND_clust(n) == null) || ( GD_expanded(ND_clust(n))) )
+ rv = n;
+ else
+ rv = (Agnode_s) GD_rankleader(ND_clust(n)).plus(ND_rank(n)).getPtr();
+ return rv;
+} finally {
+LEAVING("8bd317q0mykfu6wpr3e4cxmh2","map_interclust_node");
+}
+}
+
+
+
+
+//3 5ib4nnt2ah5fdd22zs0xds29r
+// static void make_slots(graph_t * root, int r, int pos, int d)
+public static void make_slots(Agraph_s root, int r, int pos, int d) {
+ENTERING("5ib4nnt2ah5fdd22zs0xds29r","make_slots");
+try {
+ int i;
+ Agnode_s v;
+ __ptr__ vlist;
+ vlist = GD_rank(root).plus(r).getPtr().getArrayOfPtr("v").asPtr();
+ if (d <= 0) {
+ for (i = pos - d + 1; i < GD_rank(root).plus(r).getInt("n"); i++) {
+ v = (Agnode_s) vlist.plus(i).getPtr();
+ ND_order(v, i + d - 1);
+ vlist.plus(ND_order(v)).setPtr(v);
+ }
+ for (i = GD_rank(root).plus(r).getInt("n") + d - 1; i < GD_rank(root).plus(r).getInt("n"); i++)
+ vlist.plus(i).setPtr(null);
+ } else {
+/*assert(ND_rank(root)[r].n + d - 1 <= ND_rank(root)[r].an);*/
+ for (i = GD_rank(root).plus(r).getPtr().getInt("n") - 1; i > pos; i--) {
+ v = (Agnode_s) vlist.plus(i).getPtr();
+ ND_order(v, i + d - 1);
+ vlist.plus(ND_order(v)).setPtr(v);
+ }
+ for (i = pos + 1; i < pos + d; i++)
+ vlist.plus(i).setPtr(null);
+ }
+ GD_rank(root).plus(r).getPtr().setInt("n", GD_rank(root).plus(r).getPtr().getInt("n") + d - 1);
+} finally {
+LEAVING("5ib4nnt2ah5fdd22zs0xds29r","make_slots");
+}
+}
+
+
+
+
+//3 d4mwxesl56uh9dyttg9cjlq70
+// static node_t* clone_vn(graph_t * g, node_t * vn)
+public static Agnode_s clone_vn(Agraph_s g, Agnode_s vn) {
+ENTERING("d4mwxesl56uh9dyttg9cjlq70","clone_vn");
+try {
+ Agnode_s rv;
+ int r;
+ r = ND_rank(vn);
+ make_slots(g, r, ND_order(vn), 2);
+ rv = virtual_node(g);
+ ND_lw(rv, ND_lw(vn));
+ ND_rw(rv, ND_rw(vn));
+ ND_rank(rv, ND_rank(vn));
+UNSUPPORTED("adc0qfdhup29vh8qu1cwl5jgj"); // GD_rank(g)[r].v[ND_order(rv)] = rv;
+UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+} finally {
+LEAVING("d4mwxesl56uh9dyttg9cjlq70","clone_vn");
+}
+}
+
+
+
+
+//3 6o86r59v2ujlxqcw7761y6o5b
+// static void map_path(node_t * from, node_t * to, edge_t * orig, edge_t * ve, int type)
+public static void map_path(Agnode_s from, Agnode_s to, Agedge_s orig, Agedge_s ve, int type) {
+ENTERING("6o86r59v2ujlxqcw7761y6o5b","map_path");
+try {
+ int r;
+ Agnode_s u, v;
+ Agedge_s e;
+ assert(ND_rank(from) < ND_rank(to));
+ if (EQ(agtail(ve), from) && EQ(aghead(ve), to))
+ return;
+ if (ED_count(ve) > 1) {
+ ED_to_virt(orig, null);
+ if (ND_rank(to) - ND_rank(from) == 1) {
+ if ((e = find_fast_edge(from, to))!=null && (ports_eq(orig, e))) {
+ merge_oneway(orig, e);
+ if ((ND_node_type(from) == 0)
+ && (ND_node_type(to) == 0))
+ other_edge(orig);
+ return;
+ }
+ }
+ u = from;
+ for (r = ND_rank(from); r < ND_rank(to); r++) {
+ if (r < ND_rank(to) - 1)
+ v = clone_vn(dot_root(from), aghead(ve));
+ else
+ v = to;
+ e = virtual_edge(u, v, orig);
+ ED_edge_type(e, type);
+ u = v;
+ ED_count(ve, ED_count(ve) - 1);
+ ve = (Agedge_s) ND_out(aghead(ve)).getFromList(0);
+ }
+ } else {
+ if (ND_rank(to) - ND_rank(from) == 1) {
+ if ((ve = find_fast_edge(from, to))!=null && (ports_eq(orig, ve))) {
+ /*ED_to_orig(ve) = orig; */
+ ED_to_virt(orig, ve);
+ ED_edge_type(ve, type);
+ ED_count(ve, ED_count(ve)+1);
+ if ((ND_node_type(from) == 0)
+ && (ND_node_type(to) == 0))
+ other_edge(orig);
+ } else {
+ ED_to_virt(orig, null);
+ ve = virtual_edge(from, to, orig);
+ ED_edge_type(ve, type);
+ }
+ }
+ if (ND_rank(to) - ND_rank(from) > 1) {
+ e = ve;
+ if (NEQ(agtail(ve), from)) {
+ ED_to_virt(orig, null);
+ e = virtual_edge(from, aghead(ve), orig);
+ ED_to_virt(orig, e);
+ delete_fast_edge(ve);
+ } else
+ e = ve;
+ while (ND_rank(aghead(e)) != ND_rank(to))
+ e = (Agedge_s) ND_out(aghead(e)).getFromList(0);
+ if (NEQ(aghead(e), to)) {
+ ve = e;
+ e = virtual_edge(agtail(e), to, orig);
+ ED_edge_type(e, type);
+ delete_fast_edge(ve);
+ }
+ }
+ }
+} finally {
+LEAVING("6o86r59v2ujlxqcw7761y6o5b","map_path");
+}
+}
+
+
+
+
+//3 69xbflgja0gvrsl5xcv7o7dia
+// static void make_interclust_chain(graph_t * g, node_t * from, node_t * to, edge_t * orig)
+public static void make_interclust_chain(Agraph_s g, Agnode_s from, Agnode_s to, Agedge_s orig) {
+ENTERING("69xbflgja0gvrsl5xcv7o7dia","make_interclust_chain");
+try {
+ int newtype;
+ Agnode_s u, v;
+ u = map_interclust_node(from);
+ v = map_interclust_node(to);
+ if (EQ(u, from) && EQ(v, to))
+ newtype = 1;
+ else
+ newtype = 5;
+ map_path(u, v, orig, ED_to_virt(orig), newtype);
+} finally {
+LEAVING("69xbflgja0gvrsl5xcv7o7dia","make_interclust_chain");
+}
+}
+
+
+
+
+//3 6g2m2y44x66lajznvnon2gubv
+// void interclexp(graph_t * subg)
+public static void interclexp(Agraph_s subg) {
+ENTERING("6g2m2y44x66lajznvnon2gubv","interclexp");
+try {
+ Agraph_s g;
+ Agnode_s n;
+ Agedge_s e, prev, next;
+ g = dot_root(subg);
+ for (n = agfstnode(subg); n!=null; n = agnxtnode(subg, n)) {
+ /* N.B. n may be in a sub-cluster of subg */
+ prev = null;
+ for (e = agfstedge(g, n); e!=null; e = next) {
+ next = agnxtedge(g, e, n);
+ if (agcontains(subg, e))
+ continue;
+ /* canonicalize edge */
+ e = AGMKOUT(e);
+ /* short/flat multi edges */
+ if (mergeable(prev, e)) {
+ if (ND_rank(agtail(e)) == ND_rank(aghead(e)))
+ ED_to_virt(e, prev);
+ else
+ ED_to_virt(e, null);
+ if (ED_to_virt(prev) == null)
+ continue; /* internal edge */
+UNSUPPORTED("8d5mw7m9lzlseqbyx8a8mncgs"); // merge_chain(subg, e, ED_to_virt(prev), 0);
+UNSUPPORTED("87mmnlsj8quzlzg0vxax15kt2"); // safe_other_edge(e);
+UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue;
+ }
+ /* flat edges */
+ if (ND_rank(agtail(e)) == ND_rank(aghead(e))) {
+ Agedge_s fe;
+ if ((fe = find_flat_edge(agtail(e), aghead(e))) == null) {
+ flat_edge(g, e);
+ prev = e;
+ } else if (NEQ(e, fe)) {
+UNSUPPORTED("ckfinb4h4twp1ry02y9peyhz"); // safe_other_edge(e);
+UNSUPPORTED("dg3e0udctqa7xtfynplc7wdpj"); // if (!ED_to_virt(e)) merge_oneway(e, fe);
+ }
+ continue;
+ }
+ /* forward edges */
+ if (ND_rank(aghead(e)) > ND_rank(agtail(e))) {
+ make_interclust_chain(g, agtail(e), aghead(e), e);
+ prev = e;
+ continue;
+ }
+ /* backward edges */
+ else {
+/*
+I think that make_interclust_chain should create call other_edge(e) anyway
+ if (agcontains(subg,agtail(e))
+ && agfindedge(g,aghead(e),agtail(e))) other_edge(e);
+*/
+ make_interclust_chain(g, aghead(e), agtail(e), e);
+ prev = e;
+ }
+ }
+ }
+} finally {
+LEAVING("6g2m2y44x66lajznvnon2gubv","interclexp");
+}
+}
+
+
+
+
+//3 85nhs7tnmwunw0fsjj1kxao7l
+// static void merge_ranks(graph_t * subg)
+public static void merge_ranks(Agraph_s subg) {
+ENTERING("85nhs7tnmwunw0fsjj1kxao7l","merge_ranks");
+try {
+ int i, d, r, pos, ipos;
+ Agnode_s v;
+ Agraph_s root;
+ root = dot_root(subg);
+ if (GD_minrank(subg) > 0)
+ GD_rank(root).plus(GD_minrank(subg) - 1).getPtr().setInt("valid", 0);
+ for (r = GD_minrank(subg); r <= GD_maxrank(subg); r++) {
+ d = GD_rank(subg).plus(r).getPtr().getInt("n");
+ ipos = pos = ND_order(GD_rankleader(subg).plus(r).getPtr());
+ make_slots(root, r, pos, d);
+ for (i = 0; i < GD_rank(subg).plus(r).getPtr().getInt("n"); i++) {
+ v = (Agnode_s) GD_rank(subg).plus(r).getArrayOfPtr("v").plus(i).getPtr();
+ GD_rank(root).plus(r).getArrayOfPtr("v").plus(pos).setPtr(v);
+ ND_order(v, pos++);
+ /* real nodes automatically have v->root = root graph */
+ if (ND_node_type(v) == 1)
+ v.setPtr("root", agroot(root));
+ delete_fast_node(subg, v);
+ fast_node(root, v);
+ GD_n_nodes(root, GD_n_nodes(root)+1);
+ }
+ GD_rank(subg).plus(r).getPtr().setPtr("v", GD_rank(root).plus(r).getPtr().getPtr("v").plus(ipos));
+ GD_rank(root).plus(r).getPtr().setInt("valid", 0);
+ }
+ if (r < GD_maxrank(root))
+ GD_rank(root).plus(r).getPtr().setInt("valid", 0);
+ GD_expanded(subg, NOT(false));
+} finally {
+LEAVING("85nhs7tnmwunw0fsjj1kxao7l","merge_ranks");
+}
+}
+
+
+
+
+//3 c9p7dm16i13qktnh95os0sv58
+// static void remove_rankleaders(graph_t * g)
+public static void remove_rankleaders(Agraph_s g) {
+ENTERING("c9p7dm16i13qktnh95os0sv58","remove_rankleaders");
+try {
+ int r;
+ Agnode_s v;
+ Agedge_s e;
+ for (r = GD_minrank(g); r <= GD_maxrank(g); r++) {
+ v = (Agnode_s) GD_rankleader(g).plus(r).getPtr();
+ /* remove the entire chain */
+ while ((e = (Agedge_s) ND_out(v).getFromList(0))!=null)
+ delete_fast_edge(e);
+ while ((e = (Agedge_s) ND_in(v).getFromList(0))!=null)
+ delete_fast_edge(e);
+ delete_fast_node(dot_root(g), v);
+ GD_rankleader(g).plus(r).setPtr(null);
+ }
+} finally {
+LEAVING("c9p7dm16i13qktnh95os0sv58","remove_rankleaders");
+}
+}
+
+
+
+
+//3 ecrplg8hsyl484f9kxc5xp0go
+// void expand_cluster(graph_t * subg)
+public static void expand_cluster(Agraph_s subg) {
+ENTERING("ecrplg8hsyl484f9kxc5xp0go","expand_cluster");
+try {
+ /* build internal structure of the cluster */
+ class2(subg);
+ GD_comp(subg).size = 1;
+ // GD_comp(subg).getArrayOfPtr("list").plus(0).setPtr(GD_nlist(subg));
+ GD_comp(subg).setInList(0, GD_nlist(subg));
+ allocate_ranks(subg);
+ build_ranks(subg, 0);
+ merge_ranks(subg);
+ /* build external structure of the cluster */
+ interclexp(subg);
+ remove_rankleaders(subg);
+} finally {
+LEAVING("ecrplg8hsyl484f9kxc5xp0go","expand_cluster");
+}
+}
+
+
+
+
+//3 cxuirggihlap2iv2khmb1w5l5
+// void mark_clusters(graph_t * g)
+public static void mark_clusters(Agraph_s g) {
+ENTERING("cxuirggihlap2iv2khmb1w5l5","mark_clusters");
+try {
+ int c;
+ Agnode_s n, nn=null, vn;
+ Agedge_s orig, e;
+ Agraph_s clust;
+ /* remove sub-clusters below this level */
+ for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) {
+ if (ND_ranktype(n) == 7)
+ UF_singleton(n);
+ ND_clust(n, null);
+ }
+ for (c = 1; c <= GD_n_cluster(g); c++) {
+ clust = (Agraph_s) GD_clust(g).plus(c).getPtr();
+ for (n = agfstnode(clust); n!=null; n = nn) {
+ nn = agnxtnode(clust,n);
+ if (ND_ranktype(n) != 0) {
+UNSUPPORTED("5l8jenkv77ax02t47zzxyv1k0"); // agerr(AGWARN,
+UNSUPPORTED("2ipl4umxgijawr7756ysp9hhd"); // "%s was already in a rankset, deleted from cluster %s\n",
+UNSUPPORTED("7r0ulsiau9cygesawzzjnpt5j"); // agnameof(n), agnameof(g));
+UNSUPPORTED("4zqc8357rwnd9xe7zaoqooqv3"); // agdelete(clust,n);
+UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue;
+ }
+ UF_setname(n, GD_leader(clust));
+ ND_clust(n, clust);
+ ND_ranktype(n, 7);
+ /* here we mark the vnodes of edges in the cluster */
+ for (orig = agfstout(clust, n); orig!=null;
+ orig = agnxtout(clust, orig)) {
+ if ((e = ED_to_virt(orig))!=null) {
+ while (e!=null && ND_node_type(vn =aghead(e)) == 1) {
+ ND_clust(vn, clust);
+ e = (Agedge_s) ND_out(aghead(e)).getFromList(0);
+ /* trouble if concentrators and clusters are mixed */
+ }
+ }
+ }
+ }
+ }
+} finally {
+LEAVING("cxuirggihlap2iv2khmb1w5l5","mark_clusters");
+}
+}
+
+
+
+
+//3 bwrw5u0gi2rgah1cn9h0glpse
+// void build_skeleton(graph_t * g, graph_t * subg)
+public static void build_skeleton(Agraph_s g, Agraph_s subg) {
+ENTERING("bwrw5u0gi2rgah1cn9h0glpse","build_skeleton");
+try {
+ int r;
+ Agnode_s v, prev, rl;
+ Agedge_s e;
+ prev = null;
+ GD_rankleader(subg, zmalloc(sizeof_starstar_empty(Agnode_s.class, GD_maxrank(subg) + 2)));
+ for (r = GD_minrank(subg); r <= GD_maxrank(subg); r++) {
+ v = virtual_node(g);
+ GD_rankleader(subg).plus(r).setPtr(v);
+ ND_rank(v, r);
+ ND_ranktype(v, 7);
+ ND_clust(v, subg);
+ if (prev!=null) {
+ e = virtual_edge(prev, v, null);
+ ED_xpenalty(e, ED_xpenalty(e) * 1000);
+ }
+ prev = v;
+ }
+ /* set the counts on virtual edges of the cluster skeleton */
+ for (v = agfstnode(subg); v!=null; v = agnxtnode(subg, v)) {
+ rl = (Agnode_s) GD_rankleader(subg).plus(ND_rank(v)).getPtr();
+ ND_UF_size(rl, ND_UF_size(rl)+1);
+ for (e = agfstout(subg, v); e!=null; e = agnxtout(subg, e)) {
+ for (r = ND_rank(agtail(e)); r < ND_rank(aghead(e)); r++) {
+ ED_count(ND_out(rl).getFromList(0), ED_count(ND_out(rl).getFromList(0))+1);
+ }
+ }
+ }
+ for (r = GD_minrank(subg); r <= GD_maxrank(subg); r++) {
+ rl = (Agnode_s) GD_rankleader(subg).plus(r).getPtr();
+ if (ND_UF_size(rl) > 1)
+ ND_UF_size(rl, ND_UF_size(rl)-1);
+ }
+} finally {
+LEAVING("bwrw5u0gi2rgah1cn9h0glpse","build_skeleton");
+}
+}
+
+
+
+
+//3 75yt3xwcwnxipi827t1r8zcmn
+// void install_cluster(graph_t * g, node_t * n, int pass, nodequeue * q)
+public static void install_cluster(Agraph_s g, Agnode_s n, int pass, nodequeue q) {
+ENTERING("75yt3xwcwnxipi827t1r8zcmn","install_cluster");
+try {
+ int r;
+ Agraph_s clust;
+ clust = ND_clust(n);
+ if (GD_installed(clust) != pass + 1) {
+ for (r = GD_minrank(clust); r <= GD_maxrank(clust); r++)
+ install_in_rank(g, (Agnode_s) GD_rankleader(clust).plus(r).getPtr());
+ for (r = GD_minrank(clust); r <= GD_maxrank(clust); r++)
+ enqueue_neighbors(q, (Agnode_s) GD_rankleader(clust).plus(r).getPtr(), pass);
+ GD_installed(clust, pass + 1);
+ }
+} finally {
+LEAVING("75yt3xwcwnxipi827t1r8zcmn","install_cluster");
+}
+}
+
+
+
+
+//3 4muksvb3ec03mt6cvaqpb5c7a
+// void mark_lowclusters(Agraph_t * root)
+public static void mark_lowclusters(Agraph_s root) {
+ENTERING("4muksvb3ec03mt6cvaqpb5c7a","mark_lowclusters");
+try {
+ Agnode_s n, vn;
+ Agedge_s orig, e;
+ /* first, zap any previous cluster labelings */
+ for (n = agfstnode(root); n!=null; n = agnxtnode(root, n)) {
+ ND_clust(n, null);
+ for (orig = agfstout(root, n); orig!=null; orig = agnxtout(root, orig)) {
+ if ((e = ED_to_virt(orig))!=null) {
+ while (e!=null && (ND_node_type(vn = aghead(e))) == 1) {
+ ND_clust(vn, null);
+ e = (Agedge_s) ND_out(aghead(e)).getFromList(0);
+ }
+ }
+ }
+ }
+ /* do the recursion */
+ mark_lowcluster_basic(root);
+} finally {
+LEAVING("4muksvb3ec03mt6cvaqpb5c7a","mark_lowclusters");
+}
+}
+
+
+
+
+//3 48j6fdymvkcgeh4wde060ctac
+// static void mark_lowcluster_basic(Agraph_t * g)
+public static void mark_lowcluster_basic(Agraph_s g) {
+ENTERING("48j6fdymvkcgeh4wde060ctac","mark_lowcluster_basic");
+try {
+ Agraph_s clust;
+ Agnode_s n, vn;
+ Agedge_s orig, e;
+ int c;
+ for (c = 1; c <= GD_n_cluster(g); c++) {
+ clust = (Agraph_s) GD_clust(g).plus(c).getPtr();
+ mark_lowcluster_basic(clust);
+ }
+ /* see what belongs to this graph that wasn't already marked */
+ for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) {
+ if (ND_clust(n) == null)
+ ND_clust(n, g);
+ for (orig = agfstout(g, n); orig!=null; orig = agnxtout(g, orig)) {
+ if ((e = ED_to_virt(orig))!=null) {
+ while (e!=null && (ND_node_type(vn = aghead(e))) == 1) {
+ if (ND_clust(vn) == null)
+ ND_clust(vn, g);
+ e = (Agedge_s) ND_out(aghead(e)).getFromList(0);
+ }
+ }
+ }
+ }
+} finally {
+LEAVING("48j6fdymvkcgeh4wde060ctac","mark_lowcluster_basic");
+}
+}
+
+
+}
diff --git a/src/gen/lib/dotgen/compound__c.java b/src/gen/lib/dotgen/compound__c.java
new file mode 100644
index 0000000..614cae9
--- /dev/null
+++ b/src/gen/lib/dotgen/compound__c.java
@@ -0,0 +1,1172 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * Project Info: http://plantuml.com
+ *
+ * If you like this project or if you find it useful, you can support us at:
+ *
+ * http://plantuml.com/patreon (only 1$ per month!)
+ * http://plantuml.com/paypal
+ *
+ * This file is part of Smetana.
+ * Smetana is a partial translation of Graphviz/Dot sources from C to Java.
+ *
+ * (C) Copyright 2009-2017, Arnaud Roques
+ *
+ * This translation is distributed under the same Licence as the original C program:
+ *
+ *************************************************************************
+ * Copyright (c) 2011 AT&T Intellectual Property
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: See CVS logs. Details at http://www.graphviz.org/
+ *************************************************************************
+ *
+ * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
+ * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0]
+ *
+ * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES
+ * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ *
+ * You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package gen.lib.dotgen;
+import static smetana.core.JUtilsDebug.ENTERING;
+import static smetana.core.JUtilsDebug.LEAVING;
+import static smetana.core.Macro.UNSUPPORTED;
+import h.boxf;
+import h.pointf;
+import smetana.core.JUtils;
+import smetana.core.__struct__;
+
+public class compound__c {
+//1 2digov3edok6d5srhgtlmrycs
+// extern lt_symlist_t lt_preloaded_symbols[]
+
+
+//1 baedz5i9est5csw3epz3cv7z
+// typedef Ppoly_t Ppolyline_t
+
+
+//1 9k44uhd5foylaeoekf3llonjq
+// extern Dtmethod_t* Dtset
+
+
+//1 1ahfywsmzcpcig2oxm7pt9ihj
+// extern Dtmethod_t* Dtbag
+
+
+//1 anhghfj3k7dmkudy2n7rvt31v
+// extern Dtmethod_t* Dtoset
+
+
+//1 5l6oj1ux946zjwvir94ykejbc
+// extern Dtmethod_t* Dtobag
+
+
+//1 2wtf222ak6cui8cfjnw6w377z
+// extern Dtmethod_t* Dtlist
+
+
+//1 d1s1s6ibtcsmst88e3057u9r7
+// extern Dtmethod_t* Dtstack
+
+
+//1 axa7mflo824p6fspjn1rdk0mt
+// extern Dtmethod_t* Dtqueue
+
+
+//1 ega812utobm4xx9oa9w9ayij6
+// extern Dtmethod_t* Dtdeque
+
+
+//1 cyfr996ur43045jv1tjbelzmj
+// extern Dtmethod_t* Dtorder
+
+
+//1 wlofoiftbjgrrabzb2brkycg
+// extern Dtmethod_t* Dttree
+
+
+//1 12bds94t7voj7ulwpcvgf6agr
+// extern Dtmethod_t* Dthash
+
+
+//1 9lqknzty480cy7zsubmabkk8h
+// extern Dtmethod_t _Dttree
+
+
+//1 bvn6zkbcp8vjdhkccqo1xrkrb
+// extern Dtmethod_t _Dthash
+
+
+//1 9lidhtd6nsmmv3e7vjv9e10gw
+// extern Dtmethod_t _Dtlist
+
+
+//1 34ujfamjxo7xn89u90oh2k6f8
+// extern Dtmethod_t _Dtqueue
+
+
+//1 3jy4aceckzkdv950h89p4wjc8
+// extern Dtmethod_t _Dtstack
+
+
+//1 8dfqgf3u1v830qzcjqh9o8ha7
+// extern Agmemdisc_t AgMemDisc
+
+
+//1 18k2oh2t6llfsdc5x0wlcnby8
+// extern Agiddisc_t AgIdDisc
+
+
+//1 a4r7hi80gdxtsv4hdoqpyiivn
+// extern Agiodisc_t AgIoDisc
+
+
+//1 bnzt5syjb7mgeru19114vd6xx
+// extern Agdisc_t AgDefaultDisc
+
+
+//1 35y2gbegsdjilegaribes00mg
+// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected
+
+
+//1 c2rygslq6bcuka3awmvy2b3ow
+// typedef Agsubnode_t Agnoderef_t
+
+
+//1 xam6yv0dcsx57dtg44igpbzn
+// typedef Dtlink_t Agedgeref_t
+
+
+//1 nye6dsi1twkbddwo9iffca1j
+// extern char *Version
+
+
+//1 65mu6k7h7lb7bx14jpiw7iyxr
+// extern char **Files
+
+
+//1 2rpjdzsdyrvomf00zcs3u3dyn
+// extern const char **Lib
+
+
+//1 6d2f111lntd2rsdt4gswh5909
+// extern char *CmdName
+
+
+//1 a0ltq04fpeg83soa05a2fkwb2
+// extern char *specificFlags
+
+
+//1 1uv30qeqq2jh6uznlr4dziv0y
+// extern char *specificItems
+
+
+//1 7i4hkvngxe3x7lmg5h6b3t9g3
+// extern char *Gvfilepath
+
+
+//1 9jp96pa73kseya3w6sulxzok6
+// extern char *Gvimagepath
+
+
+//1 40ylumfu7mrvawwf4v2asvtwk
+// extern unsigned char Verbose
+
+
+//1 93st8awjy1z0h07n28qycbaka
+// extern unsigned char Reduce
+
+
+//1 f2vs67ts992erf8onwfglurzp
+// extern int MemTest
+
+
+//1 c6f8whijgjwwagjigmxlwz3gb
+// extern char *HTTPServerEnVar
+
+
+//1 cp4hzj7p87m7arw776d3bt7aj
+// extern char *Output_file_name
+
+
+//1 a3rqagofsgraie6mx0krzkgsy
+// extern int graphviz_errors
+
+
+//1 5up05203r4kxvjn1m4njcgq5x
+// extern int Nop
+
+
+//1 umig46cco431x14b3kosde2t
+// extern double PSinputscale
+
+
+//1 52bj6v8fqz39khasobljfukk9
+// extern int Syntax_errors
+
+
+//1 9ekf2ina8fsjj6y6i0an6somj
+// extern int Show_cnt
+
+
+//1 38di5qi3nkxkq65onyvconk3r
+// extern char** Show_boxes
+
+
+//1 6ri6iu712m8mpc7t2670etpcw
+// extern int CL_type
+
+
+//1 bomxiw3gy0cgd1ydqtek7fpxr
+// extern unsigned char Concentrate
+
+
+//1 cqy3gqgcq8empdrbnrhn84058
+// extern double Epsilon
+
+
+//1 64slegfoouqeg0rmbyjrm8wgr
+// extern int MaxIter
+
+
+//1 88wdinpnmfs4mab4aw62yb0bg
+// extern int Ndim
+
+
+//1 8bbad3ogcelqnnvo5br5s05gq
+// extern int State
+
+
+//1 17rnd8q45zclfn68qqst2vxxn
+// extern int EdgeLabelsDone
+
+
+//1 ymx1z4s8cznjifl2d9f9m8jr
+// extern double Initial_dist
+
+
+//1 a33bgl0c3uqb3trx419qulj1x
+// extern double Damping
+
+
+//1 d9lvrpjg1r0ojv40pod1xwk8n
+// extern int Y_invert
+
+
+//1 71efkfs77q5tq9ex6y0f4kanh
+// extern int GvExitOnUsage
+
+
+//1 4xy2dkdkv0acs2ue9eca8hh2e
+// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin
+
+
+//1 9js5gxgzr74eakgtfhnbws3t9
+// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle
+
+
+//1 anqllp9sj7wo45w6bm11j8trn
+// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth
+
+
+//1 bh0z9puipqw7gymjd5h5b8s6i
+// extern struct fdpParms_s* fdp_parms
+
+
+
+
+//3 ciez0pfggxdljedzsbklq49f0
+// static inline point pointof(int x, int y)
+public static Object pointof(Object... arg) {
+UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x;
+UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 c1s4k85p1cdfn176o3uryeros
+// static inline pointf pointfof(double x, double y)
+public static __struct__<pointf> pointfof(double x, double y) {
+// WARNING!! STRUCT
+return pointfof_w_(x, y).copy();
+}
+private static __struct__<pointf> pointfof_w_(double x, double y) {
+ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", x);
+ r.setDouble("y", y);
+ return r;
+} finally {
+LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof");
+}
+}
+
+
+
+
+//3 7cufnfitrh935ew093mw0i4b7
+// static inline box boxof(int llx, int lly, int urx, int ury)
+public static Object boxof(Object... arg) {
+UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly;
+UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury;
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 1vvsta5i8of59frav6uymguav
+// static inline boxf boxfof(double llx, double lly, double urx, double ury)
+public static __struct__<boxf> boxfof(double llx, double lly, double urx, double ury) {
+// WARNING!! STRUCT
+return boxfof_w_(llx, lly, urx, ury).copy();
+}
+private static __struct__<boxf> boxfof_w_(double llx, double lly, double urx, double ury) {
+ENTERING("1vvsta5i8of59frav6uymguav","boxfof");
+try {
+ final __struct__<boxf> b = JUtils.from(boxf.class);
+ b.getStruct("LL").setDouble("x", llx);
+ b.getStruct("LL").setDouble("y", lly);
+ b.getStruct("UR").setDouble("x", urx);
+ b.getStruct("UR").setDouble("y", ury);
+ return b;
+} finally {
+LEAVING("1vvsta5i8of59frav6uymguav","boxfof");
+}
+}
+
+
+
+
+//3 1n5xl70wxuabyf97mclvilsm6
+// static inline point add_point(point p, point q)
+public static Object add_point(Object... arg) {
+UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x;
+UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 arrsbik9b5tnfcbzsm8gr2chx
+// static inline pointf add_pointf(pointf p, pointf q)
+public static __struct__<pointf> add_pointf(final __struct__<pointf> p, final __struct__<pointf> q) {
+// WARNING!! STRUCT
+return add_pointf_w_(p.copy(), q.copy()).copy();
+}
+private static __struct__<pointf> add_pointf_w_(final __struct__<pointf> p, final __struct__<pointf> q) {
+ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", p.getDouble("x") + q.getDouble("x"));
+ r.setDouble("y", p.getDouble("y") + q.getDouble("y"));
+ return r;
+} finally {
+LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+}
+}
+
+
+
+
+//3 ai2dprak5y6obdsflguh5qbd7
+// static inline point sub_point(point p, point q)
+public static Object sub_point(Object... arg) {
+UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 16f6pyogcv3j7n2p0n8giqqgh
+// static inline pointf sub_pointf(pointf p, pointf q)
+public static Object sub_pointf(Object... arg) {
+UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9k50jgrhc4f9824vf8ony74rw
+// static inline point mid_point(point p, point q)
+public static Object mid_point(Object... arg) {
+UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2;
+UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 59c4f7im0ftyowhnzzq2v9o1x
+// static inline pointf mid_pointf(pointf p, pointf q)
+public static Object mid_pointf(Object... arg) {
+UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.;
+UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 5r18p38gisvcx3zsvbb9saixx
+// static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+public static Object interpolate_pointf(Object... arg) {
+UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r;
+UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x);
+UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y);
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bxzrv2ghq04qk5cbyy68s4mol
+// static inline point exch_xy(point p)
+public static Object exch_xy(Object... arg) {
+UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9lt3e03tac6h6sydljrcws8fd
+// static inline pointf exch_xyf(pointf p)
+public static Object exch_xyf(Object... arg) {
+UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8l9qhieokthntzdorlu5zn29b
+// static inline box box_bb(box b0, box b1)
+public static Object box_bb(Object... arg) {
+UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 clws9h3bbjm0lw3hexf8nl4c4
+// static inline boxf boxf_bb(boxf b0, boxf b1)
+public static Object boxf_bb(Object... arg) {
+UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bit6ycxo1iqd2al92y8gkzlvb
+// static inline box box_intersect(box b0, box b1)
+public static Object box_intersect(Object... arg) {
+UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8gfybie7k6pgb3o1a6llgpwng
+// static inline boxf boxf_intersect(boxf b0, boxf b1)
+public static Object boxf_intersect(Object... arg) {
+UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 7z8j2quq65govaaejrz7b4cvb
+// static inline int box_overlap(box b0, box b1)
+public static Object box_overlap(Object... arg) {
+UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4z0suuut2acsay5m8mg9dqjdu
+// static inline int boxf_overlap(boxf b0, boxf b1)
+public static Object boxf_overlap(Object... arg) {
+UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 dd34swz5rmdgu3a2np2a4h1dy
+// static inline int box_contains(box b0, box b1)
+public static Object box_contains(Object... arg) {
+UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8laj1bspbu2i1cjd9upr7xt32
+// static inline int boxf_contains(boxf b0, boxf b1)
+public static Object boxf_contains(Object... arg) {
+UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4wf5swkz24xx51ja2dynbycu1
+// static inline pointf perp (pointf p)
+public static Object perp(Object... arg) {
+UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6dtlpzv4mvgzb9o0b252yweuv
+// static inline pointf scale (double c, pointf p)
+public static Object scale(Object... arg) {
+UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x;
+UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 389gsvrjy9cfa7ie5c9sr5rvi
+// static char *pf2s(pointf p, char *buf)
+public static Object pf2s(Object... arg) {
+UNSUPPORTED("d7e1ecldlwckmebycqwdif5qi"); // static char *pf2s(pointf p, char *buf)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("9nq1kahe848q44s51s8b249jw"); // sprintf(buf, "(%.5g,%.5g)", p.x, p.y);
+UNSUPPORTED("5jfpogdyby101eyuw2dhtb5cg"); // return buf;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 aaeedfeqjstij7teh2arwur0s
+// static pointf boxIntersectf(pointf pp, pointf cp, boxf * bp)
+public static Object boxIntersectf(Object... arg) {
+UNSUPPORTED("9lbfcrf6tg3qq2hoi74tj6jil"); // static pointf boxIntersectf(pointf pp, pointf cp, boxf * bp)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("e7e629d656z5m5408o06swiy3"); // pointf ipp;
+UNSUPPORTED("77e5d834qbjgxa5m8msxj0b22"); // double ppx = pp.x;
+UNSUPPORTED("5zf0pogb3f4f5faatrew5itus"); // double ppy = pp.y;
+UNSUPPORTED("etdvp5w4bmvc3hfjv6xsbqhgl"); // double cpx = cp.x;
+UNSUPPORTED("dzvbcgu397soy9gv5p7bqez7e"); // double cpy = cp.y;
+UNSUPPORTED("dzq83vvwl259k7394rpz3ahw4"); // pointf ll;
+UNSUPPORTED("1ilrhzyqh05f2u3j3vzg0ys8u"); // pointf ur;
+UNSUPPORTED("82ter8mdp5dwyq284t271kkq2"); // ll = bp->LL;
+UNSUPPORTED("cjf1mmtyv7enn9aid7eveqj3m"); // ur = bp->UR;
+UNSUPPORTED("hrb7x7coec3ls1f3tbzbv1i4"); // if (cp.x < ll.x) {
+UNSUPPORTED("bz02pree35ok6h7ne2b9078gr"); // ipp.x = ll.x;
+UNSUPPORTED("79t0kzkjgtsgnwjzk2423w61c"); // ipp.y = pp.y + (int) ((ipp.x - ppx) * (ppy - cpy) / (ppx - cpx));
+UNSUPPORTED("5zwh31a86akovenbej0w7yjlq"); // if (ipp.y >= ll.y && ipp.y <= ur.y)
+UNSUPPORTED("6klahfi7ib1my989uyt3r3fns"); // return ipp;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("92dqlio3tyb7oqz8rrk4u1i39"); // if (cp.x > ur.x) {
+UNSUPPORTED("ct5wv2h1epcow92rfyyuvo9x8"); // ipp.x = ur.x;
+UNSUPPORTED("79t0kzkjgtsgnwjzk2423w61c"); // ipp.y = pp.y + (int) ((ipp.x - ppx) * (ppy - cpy) / (ppx - cpx));
+UNSUPPORTED("5zwh31a86akovenbej0w7yjlq"); // if (ipp.y >= ll.y && ipp.y <= ur.y)
+UNSUPPORTED("6klahfi7ib1my989uyt3r3fns"); // return ipp;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("d1vpfkzy4othi356ddvouf1du"); // if (cp.y < ll.y) {
+UNSUPPORTED("645jp0y7ad6zmpqv1ujuwv7d2"); // ipp.y = ll.y;
+UNSUPPORTED("6xy4qjwbmyv2lmoecg9lz44m1"); // ipp.x = pp.x + (int) ((ipp.y - ppy) * (ppx - cpx) / (ppy - cpy));
+UNSUPPORTED("6or7iqvva2wcjp65woe9ywn9j"); // if (ipp.x >= ll.x && ipp.x <= ur.x)
+UNSUPPORTED("6klahfi7ib1my989uyt3r3fns"); // return ipp;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("22uv9kfz9ohd3u69nktr9fsko"); // if (cp.y > ur.y) {
+UNSUPPORTED("7fbze74dhzwnj80vwncttjoza"); // ipp.y = ur.y;
+UNSUPPORTED("6xy4qjwbmyv2lmoecg9lz44m1"); // ipp.x = pp.x + (int) ((ipp.y - ppy) * (ppx - cpx) / (ppy - cpy));
+UNSUPPORTED("6or7iqvva2wcjp65woe9ywn9j"); // if (ipp.x >= ll.x && ipp.x <= ur.x)
+UNSUPPORTED("6klahfi7ib1my989uyt3r3fns"); // return ipp;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("2brtdhuqnq3wbu0y4vha1lxe1"); // /* failure */
+UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // {
+UNSUPPORTED("8lid84pwtuybl3mg15z7f9v8n"); // char ppbuf[100], cpbuf[100], llbuf[100], urbuf[100];
+UNSUPPORTED("8utponegpfhxi3ifoaet3w22u"); // agerr(AGERR,
+UNSUPPORTED("4e7yhbghqnz3l8o03xenxz6qk"); // "segment [%s,%s] does not intersect box ll=%s,ur=%s\n",
+UNSUPPORTED("a7epvdx0qf9ql74dqkbz43vak"); // pf2s(pp, ppbuf), pf2s(cp, cpbuf),
+UNSUPPORTED("e9otl0bm92qbvbxwfd4euftxb"); // pf2s(ll, llbuf), pf2s(ur, urbuf));
+UNSUPPORTED("2g1czwq8qs1hp7515i11qbn75"); // assert(0);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("2eteshlf6etzhvieru9a3d7hl"); // return ipp;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 cdgb9eokkhoxckam633l1qm6t
+// static int inBoxf(pointf p, boxf * bb)
+public static Object inBoxf(Object... arg) {
+UNSUPPORTED("18frdpfl5gpq5be170xxu7ypk"); // static int inBoxf(pointf p, boxf * bb)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("62grwq3ychthd06kd0dma6nl4"); // return INSIDE(p, *bb);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 7i49mbvuj9tvhyjtdrhyomfd2
+// static graph_t *getCluster(graph_t * g, char *cluster_name, Dt_t* map)
+public static Object getCluster(Object... arg) {
+UNSUPPORTED("b3i6y8ykkxx0imig66aitm32p"); // static graph_t *getCluster(graph_t * g, char *cluster_name, Dt_t* map)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("a9vu6hocyi7htsqyh6phlzeil"); // Agraph_t* sg;
+UNSUPPORTED("bdri6gk80s45bza4efp7hp3io"); // if (!cluster_name || (*cluster_name == '\0'))
+UNSUPPORTED("11hwqop4xebvtcskop4uhpp01"); // return NULL;
+UNSUPPORTED("e7qf9buhacu05os7k2mmh66cv"); // sg = findCluster (map, cluster_name);
+UNSUPPORTED("2cbce9349ulperyph2yxmob79"); // if (sg == NULL) {
+UNSUPPORTED("d4c9bmlrq8gy5z6b7aj0hh95m"); // agerr(AGWARN, "cluster named %s not found\n", cluster_name);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("1jw141gg4omv8r72xcbl5ln0o"); // return sg;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 1shblnlks0zlz7s6h6l9az96k
+// static int countVertCross(pointf * pts, double xcoord)
+public static Object countVertCross(Object... arg) {
+UNSUPPORTED("3fh5r6lqrzpzitfo6fg3mbhr9"); // static int countVertCross(pointf * pts, double xcoord)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i;
+UNSUPPORTED("84e683m9cp16ljzwmonvu6h5o"); // int sign, old_sign;
+UNSUPPORTED("3m0xdv3clh5kt5r24q2nq8qy3"); // int num_crossings = 0;
+UNSUPPORTED("anrpp1ijmhz0zvudygqnuhuxg"); // sign = CMP(pts[0].x, xcoord);
+UNSUPPORTED("cn59uvgfsp852xd4juwg253ab"); // if (sign == 0)
+UNSUPPORTED("31x1ju7msb5pxljz8c9cdfxi2"); // num_crossings++;
+UNSUPPORTED("46jnsuhm7tq2klfsjamf7jrpa"); // for (i = 1; i <= 3; i++) {
+UNSUPPORTED("863qxcme12wfzx1clw4ehqelq"); // old_sign = sign;
+UNSUPPORTED("pfykk7uimn1p9y4mh0gs58ft"); // sign = CMP(pts[i].x, xcoord);
+UNSUPPORTED("34hhymaa1fodp7eoxwo7qev6v"); // if ((sign != old_sign) && (old_sign != 0))
+UNSUPPORTED("dsc9eps2jqbca8n4oaud2b223"); // num_crossings++;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("ahpb1md0lwtdwqxgalm3b4rqa"); // return num_crossings;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 65jkpfhzlwld3rg4ggrojwo0t
+// static int countHorzCross(pointf * pts, double ycoord)
+public static Object countHorzCross(Object... arg) {
+UNSUPPORTED("de9l7dbf21io84d7j6fr2g2bk"); // static int countHorzCross(pointf * pts, double ycoord)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i;
+UNSUPPORTED("84e683m9cp16ljzwmonvu6h5o"); // int sign, old_sign;
+UNSUPPORTED("3m0xdv3clh5kt5r24q2nq8qy3"); // int num_crossings = 0;
+UNSUPPORTED("1jpgvdmmizse7xc7bwhb6fowk"); // sign = CMP(pts[0].y, ycoord);
+UNSUPPORTED("cn59uvgfsp852xd4juwg253ab"); // if (sign == 0)
+UNSUPPORTED("31x1ju7msb5pxljz8c9cdfxi2"); // num_crossings++;
+UNSUPPORTED("46jnsuhm7tq2klfsjamf7jrpa"); // for (i = 1; i <= 3; i++) {
+UNSUPPORTED("863qxcme12wfzx1clw4ehqelq"); // old_sign = sign;
+UNSUPPORTED("e1b5xplhock9z22bd4pd2dqlq"); // sign = CMP(pts[i].y, ycoord);
+UNSUPPORTED("34hhymaa1fodp7eoxwo7qev6v"); // if ((sign != old_sign) && (old_sign != 0))
+UNSUPPORTED("dsc9eps2jqbca8n4oaud2b223"); // num_crossings++;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("ahpb1md0lwtdwqxgalm3b4rqa"); // return num_crossings;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 aih397ad5qkovyx9x0wr21h54
+// static double findVertical(pointf * pts, double tmin, double tmax, double xcoord, double ymin, double ymax)
+public static Object findVertical(Object... arg) {
+UNSUPPORTED("lt6cippjix5bbvyhkcpl8g7g"); // static double
+UNSUPPORTED("85kaoubr5lh52fmxz21tc0c1j"); // findVertical(pointf * pts, double tmin, double tmax,
+UNSUPPORTED("6qy8dlo2xl5uszko7s7dlvxw7"); // double xcoord, double ymin, double ymax)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("15equnrdjvp7z6hnykwsq855q"); // pointf Left[4];
+UNSUPPORTED("czk4lot3uqdf06o5ws37gsxwv"); // pointf Right[4];
+UNSUPPORTED("6wfj8onzmd4ihhh62dqfmqpbx"); // double t;
+UNSUPPORTED("78xh7rd4kkol7tca0ou5rsl2l"); // int no_cross = countVertCross(pts, xcoord);
+UNSUPPORTED("d7u308dr2xy07ijwz1hdhhmfx"); // if (no_cross == 0)
+UNSUPPORTED("6etr2h2322v9ragqutm759yas"); // return -1.0;
+UNSUPPORTED("ad9m8nxf0mcmhf2djox688ldn"); // /* if 1 crossing and on the line x == xcoord (within 1 point) */
+UNSUPPORTED("4acg9xblgk4ucgodvaih6xrxj"); // if ((no_cross == 1) && (ROUND(pts[3].x) == ROUND(xcoord))) {
+UNSUPPORTED("bf7x4u2r8ux51e40gclwa1a1a"); // if ((ymin <= pts[3].y) && (pts[3].y <= ymax)) {
+UNSUPPORTED("bygqzclvo91ia8pdfxgwt277e"); // return tmax;
+UNSUPPORTED("6to1esmb8qfrhzgtr7jdqleja"); // } else
+UNSUPPORTED("ap55zco1042e8hct3w86akeke"); // return -1.0;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("9d4ocidcx0valemm3vzi00avm"); // /* split the Bezier into halves, trying the first half first. */
+UNSUPPORTED("605jhx0qvq7rusredvjldyy4c"); // Bezier(pts, 3, 0.5, Left, Right);
+UNSUPPORTED("6cwj26bp1l7s2las5a7m77tku"); // t = findVertical(Left, tmin, (tmin + tmax) / 2.0, xcoord, ymin, ymax);
+UNSUPPORTED("1j0wovs9fkx43ukygc0u69s5g"); // if (t >= 0.0)
+UNSUPPORTED("d78ai9c2o2d3q4femq5es1anw"); // return t;
+UNSUPPORTED("9d6bwwzbxp9fm5m208jh9i8vu"); // return findVertical(Right, (tmin + tmax) / 2.0, tmax, xcoord, ymin,
+UNSUPPORTED("cd6vwnucsms9wzpeqb5nxh0ky"); // ymax);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 ekvbbd4zvuxrho7sitbt8ql7s
+// static double findHorizontal(pointf * pts, double tmin, double tmax, double ycoord, double xmin, double xmax)
+public static Object findHorizontal(Object... arg) {
+UNSUPPORTED("lt6cippjix5bbvyhkcpl8g7g"); // static double
+UNSUPPORTED("78h62jx38l5t5fm5l5pcmhbsf"); // findHorizontal(pointf * pts, double tmin, double tmax,
+UNSUPPORTED("710x71u5311vcqfimkbvzi83a"); // double ycoord, double xmin, double xmax)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("15equnrdjvp7z6hnykwsq855q"); // pointf Left[4];
+UNSUPPORTED("czk4lot3uqdf06o5ws37gsxwv"); // pointf Right[4];
+UNSUPPORTED("6wfj8onzmd4ihhh62dqfmqpbx"); // double t;
+UNSUPPORTED("4954qgan4jixgvt69g1ajjdpo"); // int no_cross = countHorzCross(pts, ycoord);
+UNSUPPORTED("d7u308dr2xy07ijwz1hdhhmfx"); // if (no_cross == 0)
+UNSUPPORTED("6etr2h2322v9ragqutm759yas"); // return -1.0;
+UNSUPPORTED("epscxk2oek6v8c25l06qg49ym"); // /* if 1 crossing and on the line y == ycoord (within 1 point) */
+UNSUPPORTED("bwwz4x8fjy78hz5xaadjtuwte"); // if ((no_cross == 1) && (ROUND(pts[3].y) == ROUND(ycoord))) {
+UNSUPPORTED("8mh80lea0b69k078vehmxhy3"); // if ((xmin <= pts[3].x) && (pts[3].x <= xmax)) {
+UNSUPPORTED("bygqzclvo91ia8pdfxgwt277e"); // return tmax;
+UNSUPPORTED("6to1esmb8qfrhzgtr7jdqleja"); // } else
+UNSUPPORTED("ap55zco1042e8hct3w86akeke"); // return -1.0;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("9d4ocidcx0valemm3vzi00avm"); // /* split the Bezier into halves, trying the first half first. */
+UNSUPPORTED("605jhx0qvq7rusredvjldyy4c"); // Bezier(pts, 3, 0.5, Left, Right);
+UNSUPPORTED("83enazrwlypz7ni9b8bftyxs3"); // t = findHorizontal(Left, tmin, (tmin + tmax) / 2.0, ycoord, xmin,
+UNSUPPORTED("669ctf1reahp9td1amg1zq5u"); // xmax);
+UNSUPPORTED("1j0wovs9fkx43ukygc0u69s5g"); // if (t >= 0.0)
+UNSUPPORTED("d78ai9c2o2d3q4femq5es1anw"); // return t;
+UNSUPPORTED("7yh5k9v3lj4qwcasd986zd88c"); // return findHorizontal(Right, (tmin + tmax) / 2.0, tmax, ycoord, xmin,
+UNSUPPORTED("qt8mgej4qnelxqtwoy8dt0jt"); // xmax);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 f35390txedsmk9p0bb7lc0glh
+// static int splineIntersectf(pointf * pts, boxf * bb)
+public static Object splineIntersectf(Object... arg) {
+UNSUPPORTED("5skcahu2z7i5of3rceeyk3dja"); // static int splineIntersectf(pointf * pts, boxf * bb)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("4x99qvp4a3bmbyxtp16ajfnsk"); // double tmin = 2.0;
+UNSUPPORTED("6wfj8onzmd4ihhh62dqfmqpbx"); // double t;
+UNSUPPORTED("9g866elzsedx9foz9yjhoiou1"); // pointf origpts[4];
+UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i;
+UNSUPPORTED("a2n8aqfq0cqpx8elstmfn9oq6"); // for (i = 0; i < 4; i++) {
+UNSUPPORTED("4zou1qx7inlvcv0miqk04wcab"); // origpts[i] = pts[i];
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("6vm6zifwonvzwuelxtslbue2"); // t = findVertical(pts, 0.0, 1.0, bb->LL.x, bb->LL.y, bb->UR.y);
+UNSUPPORTED("9zvtsolyyf2ytpv8pj4a8n5iu"); // if ((t >= 0) && (t < tmin)) {
+UNSUPPORTED("8w1khrdoc5zw1yk6j1a8drqse"); // Bezier(origpts, 3, t, pts, NULL);
+UNSUPPORTED("5ml6bcuw1xgfn7f3dyox7iwrv"); // tmin = t;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("981p5dxcykkvx91604334lab3"); // t = findVertical(pts, 0.0, MIN(1.0, tmin), bb->UR.x, bb->LL.y,
+UNSUPPORTED("1of63c5vskctycz57r6s1aop5"); // bb->UR.y);
+UNSUPPORTED("9zvtsolyyf2ytpv8pj4a8n5iu"); // if ((t >= 0) && (t < tmin)) {
+UNSUPPORTED("8w1khrdoc5zw1yk6j1a8drqse"); // Bezier(origpts, 3, t, pts, NULL);
+UNSUPPORTED("5ml6bcuw1xgfn7f3dyox7iwrv"); // tmin = t;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("7a2rh5vrty9usl73kwlat7axz"); // t = findHorizontal(pts, 0.0, MIN(1.0, tmin), bb->LL.y, bb->LL.x,
+UNSUPPORTED("de5psijf8qtaea4iaibltvfli"); // bb->UR.x);
+UNSUPPORTED("9zvtsolyyf2ytpv8pj4a8n5iu"); // if ((t >= 0) && (t < tmin)) {
+UNSUPPORTED("8w1khrdoc5zw1yk6j1a8drqse"); // Bezier(origpts, 3, t, pts, NULL);
+UNSUPPORTED("5ml6bcuw1xgfn7f3dyox7iwrv"); // tmin = t;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("8j6y4x6maqneer7is54dvjrg8"); // t = findHorizontal(pts, 0.0, MIN(1.0, tmin), bb->UR.y, bb->LL.x,
+UNSUPPORTED("de5psijf8qtaea4iaibltvfli"); // bb->UR.x);
+UNSUPPORTED("9zvtsolyyf2ytpv8pj4a8n5iu"); // if ((t >= 0) && (t < tmin)) {
+UNSUPPORTED("8w1khrdoc5zw1yk6j1a8drqse"); // Bezier(origpts, 3, t, pts, NULL);
+UNSUPPORTED("5ml6bcuw1xgfn7f3dyox7iwrv"); // tmin = t;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("5yrkc1uiqwozz2tsxyo3vpj6n"); // if (tmin < 2.0) {
+UNSUPPORTED("eleqpc2p2r3hvma6tipoy7tr"); // return 1;
+UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else
+UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 cqg91aue3soclnawequqcxspl
+// static void makeCompoundEdge(graph_t * g, edge_t * e, Dt_t* clustMap)
+public static Object makeCompoundEdge(Object... arg) {
+UNSUPPORTED("94ok4vzwibg79sh9bgw127ynj"); // static void makeCompoundEdge(graph_t * g, edge_t * e, Dt_t* clustMap)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("d8yeygt41ba5jbyj4rz2bs7jh"); // graph_t *lh; /* cluster containing head */
+UNSUPPORTED("ckcdimdpkin3lhakg1rjgopmi"); // graph_t *lt; /* cluster containing tail */
+UNSUPPORTED("em6swtpn9fdaqlt4w0ye5p7db"); // bezier *bez; /* original Bezier for e */
+UNSUPPORTED("2nh8wbaihnp137k4pc9xuzwhg"); // bezier *nbez; /* new Bezier for e */
+UNSUPPORTED("1tw709ct510b9s636x7nkqfkr"); // int starti = 0, endi = 0; /* index of first and last control point */
+UNSUPPORTED("8i0kwb8r6a2sj6nuvcy3bg9rx"); // node_t *head;
+UNSUPPORTED("abn0n8lzvb24ju9mrqm4oqu8"); // node_t *tail;
+UNSUPPORTED("v5k4w91mrx94yjcdoytcu9oh"); // boxf *bb;
+UNSUPPORTED("dzpsknrwv8qkqq20hjnjpjn68"); // int i, j;
+UNSUPPORTED("cav0e7ncloqss0hsvc4fyfi7s"); // int size;
+UNSUPPORTED("d8sp6cfkpfyndzmid92shiq50"); // pointf pts[4];
+UNSUPPORTED("2bghyit203pd6xw2ihhenzyn8"); // pointf p;
+UNSUPPORTED("a1awknurkwnitpucodqwmcybo"); // int fixed;
+UNSUPPORTED("eg8l6bf528m9rxpz19s67zunk"); // /* find head and tail target clusters, if defined */
+UNSUPPORTED("cv6tt9aup4gcbgqhx1nq22k1c"); // lh = getCluster(g, agget(e, "lhead"), clustMap);
+UNSUPPORTED("1c1flydze3375acsjsk9q3kp"); // lt = getCluster(g, agget(e, "ltail"), clustMap);
+UNSUPPORTED("c0uthnj5r46is8vqpjh6vftc8"); // if (!lt && !lh)
+UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return;
+UNSUPPORTED("7r9z58ji5z8h9c59lp0npnrgu"); // if (!ED_spl(e)) return;
+UNSUPPORTED("d5zyxsdhnmpgj9r2eeuoe24qd"); // /* at present, we only handle single spline case */
+UNSUPPORTED("9y41ojbiongk0r6fdtq1my3t1"); // if (ED_spl(e)->size > 1) {
+UNSUPPORTED("2bykd7j98lcwoewshvpja61l3"); // agerr(AGWARN, "%s -> %s: spline size > 1 not supported\n",
+UNSUPPORTED("1wah0q9mwnexbe0myh4pe78ks"); // agnameof(agtail(e)), agnameof(aghead(e)));
+UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("9zp3bsvuco9me48ea4fiy6acl"); // bez = ED_spl(e)->list;
+UNSUPPORTED("1mwkc047hik3rfvg9nirzx1eu"); // size = bez->size;
+UNSUPPORTED("9vcgvjkna4elv9mw682bcl1ry"); // head = aghead(e);
+UNSUPPORTED("6pl9v5iuk7ek5nv87env6rn8y"); // tail = agtail(e);
+UNSUPPORTED("ap2j55l6otqo1gbl6ltds9nwh"); // /* allocate new Bezier */
+UNSUPPORTED("evus0s8ajoz1nr025560y72nt"); // nbez = (bezier*)gmalloc(sizeof(bezier));
+UNSUPPORTED("ep4g00m6u2qqzjjpl5wv8pf68"); // nbez->eflag = bez->eflag;
+UNSUPPORTED("3f2ouh5001dudtknnvyd0d3k"); // nbez->sflag = bez->sflag;
+UNSUPPORTED("9puveeg1x9guxlasq00a4jkoy"); // /* if Bezier has four points, almost collinear,
+UNSUPPORTED("3j2z7u8v0esgm7xffel168hq7"); // * make line - unimplemented optimization?
+UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */
+UNSUPPORTED("gquyyp49r5koft7tvjy0s8rg"); // /* If head cluster defined, find first Bezier
+UNSUPPORTED("36p20hcsa21623tw4wu1oz2p6"); // * crossing head cluster, and truncate spline to
+UNSUPPORTED("9s9druwau7a95yt795beirpsq"); // * box edge.
+UNSUPPORTED("cn1atesybawh2axikezvwq87k"); // * Otherwise, leave end alone.
+UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */
+UNSUPPORTED("7ub8yceaqsfpwhdiiln16imu8"); // fixed = 0;
+UNSUPPORTED("9pt4rploytevhgdsh2ccwqwa5"); // if (lh) {
+UNSUPPORTED("1epg8to10rb7b0uyumqk5by3d"); // bb = &(GD_bb(lh));
+UNSUPPORTED("5kfib01to02c8vzno1s2ekcr6"); // if (!inBoxf(ND_coord(head), bb)) {
+UNSUPPORTED("dw7kdr12sq66xx2svd4s92czw"); // agerr(AGWARN, "%s -> %s: head not inside head cluster %s\n",
+UNSUPPORTED("4685lstw48yeb92f1qu3uf6ju"); // agnameof(agtail(e)), agnameof(aghead(e)), agget(e, "lhead"));
+UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else {
+UNSUPPORTED("3uodo3h9hth2y90nphjmbr0oz"); // /* If first control point is in bb, degenerate case. Spline
+UNSUPPORTED("48lbfpll26nek7srz6txj1ifd"); // * reduces to four points between the arrow head and the point
+UNSUPPORTED("bnhwhc0oclranqqrc084eqy25"); // * where the segment between the first control point and arrow head
+UNSUPPORTED("cqgsnvduolzsvf228s6bzu09z"); // * crosses box.
+UNSUPPORTED("20m1lc1moer8x00tx9ceto0iw"); // */
+UNSUPPORTED("9pqsbiv3p2qq7o79wqbbz8l5n"); // if (inBoxf(bez->list[0], bb)) {
+UNSUPPORTED("9w1xj4pf7ycfdklkv9mztvayi"); // if (inBoxf(ND_coord(tail), bb)) {
+UNSUPPORTED("3f0u3cjz549lwgnkj0rlfv6rv"); // agerr(AGWARN,
+UNSUPPORTED("27beaae4u5f8m2rui7t930icj"); // "%s -> %s: tail is inside head cluster %s\n",
+UNSUPPORTED("5su0sbzvdwjhkfmbg8xivrf3y"); // agnameof(agtail(e)), agnameof(aghead(e)), agget(e, "lhead"));
+UNSUPPORTED("a47jqpic91ky93e1ohxv590l5"); // } else {
+UNSUPPORTED("ewwp403copbj6mdyqowm6q2s4"); // assert(bez->sflag); /* must be arrowhead on tail */
+UNSUPPORTED("lp06fc3tmr8xux3w7kfnjg4r"); // p = boxIntersectf(bez->list[0], bez->sp, bb);
+UNSUPPORTED("ejtuxx5nuew10e08cnrbh9avq"); // bez->list[3] = p;
+UNSUPPORTED("7duperi3l69fplb736n7smpqf"); // bez->list[1] = mid_pointf(p, bez->sp);
+UNSUPPORTED("a4eh5xj2wrncqnmttmavzegdw"); // bez->list[0] = mid_pointf(bez->list[1], bez->sp);
+UNSUPPORTED("5dxkrve755ukj7tzac4ft5kee"); // bez->list[2] = mid_pointf(bez->list[1], p);
+UNSUPPORTED("59ne8fp4dumv8e2dt8nzlbwm9"); // if (bez->eflag)
+UNSUPPORTED("e0iax8us2lskwlp49snfuewo5"); // endi = arrowEndClip(e, bez->list,
+UNSUPPORTED("cblie3jhaa9y0orqcusd4rz3n"); // starti, 0, nbez, bez->eflag);
+UNSUPPORTED("dtvlepuobgzgt31wlwvahcuz6"); // endi += 3;
+UNSUPPORTED("b1vrskwl75muujmh6lvltym9p"); // fixed = 1;
+UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // }
+UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else {
+UNSUPPORTED("2sf4rxnj84i693qu8p8eeb0th"); // for (endi = 0; endi < size - 1; endi += 3) {
+UNSUPPORTED("3gsvjp9m9s9xkrldmovrxl86l"); // if (splineIntersectf(&(bez->list[endi]), bb))
+UNSUPPORTED("a5064jph9xpw67dcun2my4mcm"); // break;
+UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // }
+UNSUPPORTED("6v67nn2fkgve6sliwhhcjhlzy"); // if (endi == size - 1) { /* no intersection */
+UNSUPPORTED("ne38tb76v74pens6v8pbfrbg"); // assert(bez->eflag);
+UNSUPPORTED("6zfsm93mmi2u1kkkh72v0p3ko"); // nbez->ep = boxIntersectf(bez->ep, bez->list[endi], bb);
+UNSUPPORTED("a47jqpic91ky93e1ohxv590l5"); // } else {
+UNSUPPORTED("59ne8fp4dumv8e2dt8nzlbwm9"); // if (bez->eflag)
+UNSUPPORTED("2931qkcakw4pmrkqfxkwz6c9w"); // endi =
+UNSUPPORTED("5m1xf54kia4xa3oh9pi0laqg2"); // arrowEndClip(e, bez->list,
+UNSUPPORTED("dif2h2k72i4vle08l8zt6g99d"); // starti, endi, nbez, bez->eflag);
+UNSUPPORTED("dtvlepuobgzgt31wlwvahcuz6"); // endi += 3;
+UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // }
+UNSUPPORTED("37cextn872jccni47tbuylnde"); // fixed = 1;
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("b4l5v1tzcfyxswk474eyxoh7g"); // if (fixed == 0) { /* if no lh, or something went wrong, use original head */
+UNSUPPORTED("5iaa7yro1fezven3pxpfgmxu4"); // endi = size - 1;
+UNSUPPORTED("a4jsfnfkjyk5zvhtmxz837cwk"); // if (bez->eflag)
+UNSUPPORTED("ardm696r3cpsbtf6losy2b016"); // nbez->ep = bez->ep;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("ea4t41cqs5cu6h8oyl4vr26m2"); // /* If tail cluster defined, find last Bezier
+UNSUPPORTED("7p2mckkgkchxr6vhh6gezq8wz"); // * crossing tail cluster, and truncate spline to
+UNSUPPORTED("9s9druwau7a95yt795beirpsq"); // * box edge.
+UNSUPPORTED("cn1atesybawh2axikezvwq87k"); // * Otherwise, leave end alone.
+UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */
+UNSUPPORTED("7ub8yceaqsfpwhdiiln16imu8"); // fixed = 0;
+UNSUPPORTED("5qu8oy18iv3lo7czvfxeoa9uf"); // if (lt) {
+UNSUPPORTED("pk4bun7t8spswxbvfqizndma"); // bb = &(GD_bb(lt));
+UNSUPPORTED("5fdmhqx0gpmawrdmhes377bcj"); // if (!inBoxf(ND_coord(tail), bb)) {
+UNSUPPORTED("1m0jbxdni08pgm584b96t3rjx"); // agerr(AGWARN, "%s -> %s: tail not inside tail cluster %s\n",
+UNSUPPORTED("3s8r91i8l8gnx912jssz9qyeo"); // agnameof(agtail(e)), agnameof(aghead(e)), agget(e, "ltail"));
+UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else {
+UNSUPPORTED("1qjsjzvwnzg5em6iaq3reaswh"); // /* If last control point is in bb, degenerate case. Spline
+UNSUPPORTED("f2rlo65dpa2r245fl7q3a8uhm"); // * reduces to four points between arrow head, and the point
+UNSUPPORTED("c22xvluit87sy443q8y00uc4g"); // * where the segment between the last control point and the
+UNSUPPORTED("drage3192rqa7ifzj1p0rzr7b"); // * arrow head crosses box.
+UNSUPPORTED("20m1lc1moer8x00tx9ceto0iw"); // */
+UNSUPPORTED("5xu4e03fqpef4n5pmrb5kau0d"); // if (inBoxf(bez->list[endi], bb)) {
+UNSUPPORTED("25cb9bqsfesb0faqthoggdumf"); // if (inBoxf(ND_coord(head), bb)) {
+UNSUPPORTED("3f0u3cjz549lwgnkj0rlfv6rv"); // agerr(AGWARN,
+UNSUPPORTED("5xfu8lqrs0caaz29aue2f4s21"); // "%s -> %s: head is inside tail cluster %s\n",
+UNSUPPORTED("f3g912itxolsegc77eg84cl5l"); // agnameof(agtail(e)), agnameof(aghead(e)), agget(e, "ltail"));
+UNSUPPORTED("a47jqpic91ky93e1ohxv590l5"); // } else {
+UNSUPPORTED("8f4spvkivd7okr9g59i6nwodq"); // assert(bez->eflag); /* must be arrowhead on head */
+UNSUPPORTED("7f7fhm60xzneykhpsinmusktg"); // p = boxIntersectf(bez->list[endi], nbez->ep, bb);
+UNSUPPORTED("5sxlw9wg1evuruihg2pf20m2q"); // starti = endi - 3;
+UNSUPPORTED("469jcsvjasontlve9fx1oiprf"); // bez->list[starti] = p;
+UNSUPPORTED("cnpwuv23ryh1zxbij0n57992e"); // bez->list[starti + 2] = mid_pointf(p, nbez->ep);
+UNSUPPORTED("o7wu7segbiephyk1mn6ruzii"); // bez->list[starti + 3] = mid_pointf(bez->list[starti + 2], nbez->ep);
+UNSUPPORTED("1hq51ue6km9jd5khvilyiu8ba"); // bez->list[starti + 1] = mid_pointf(bez->list[starti + 2], p);
+UNSUPPORTED("f018p8s1pklqzeu862o8grqz3"); // if (bez->sflag)
+UNSUPPORTED("c9hvjpjpxposlztt4ykhchse4"); // starti = arrowStartClip(e, bez->list, starti,
+UNSUPPORTED("dbcocs457i5fpymvciq1id8sl"); // endi - 3, nbez, bez->sflag);
+UNSUPPORTED("b1vrskwl75muujmh6lvltym9p"); // fixed = 1;
+UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // }
+UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else {
+UNSUPPORTED("d2jlvy1nqfh80mgss1c39f01j"); // for (starti = endi; starti > 0; starti -= 3) {
+UNSUPPORTED("28srqjfv5l9fgucte4xcck1wf"); // for (i = 0; i < 4; i++)
+UNSUPPORTED("8c8hwyg5j3w5quof1ir68ns70"); // pts[i] = bez->list[starti - i];
+UNSUPPORTED("4r5afy1ydhha880ua170puwym"); // if (splineIntersectf(pts, bb)) {
+UNSUPPORTED("ej309gi9fv5xlnkscibruakjp"); // for (i = 0; i < 4; i++)
+UNSUPPORTED("7i03k1aqcvrb8znb7097fyn48"); // bez->list[starti - i] = pts[i];
+UNSUPPORTED("a5064jph9xpw67dcun2my4mcm"); // break;
+UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // }
+UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // }
+UNSUPPORTED("btve1tg4yf6dsbobp66rbktt7"); // if (starti == 0) {
+UNSUPPORTED("8n6t6jnfgooxt9ia0n2d9xj5a"); // assert(bez->sflag);
+UNSUPPORTED("9iea16dzn148ggj1yhec6nrv6"); // nbez->sp =
+UNSUPPORTED("3c8n4kr8984t1a8f2tvj7wgrr"); // boxIntersectf(bez->sp, bez->list[starti], bb);
+UNSUPPORTED("a47jqpic91ky93e1ohxv590l5"); // } else {
+UNSUPPORTED("5yn57nenv2uh775lo64evo8ma"); // starti -= 3;
+UNSUPPORTED("f018p8s1pklqzeu862o8grqz3"); // if (bez->sflag)
+UNSUPPORTED("c9hvjpjpxposlztt4ykhchse4"); // starti = arrowStartClip(e, bez->list, starti,
+UNSUPPORTED("dbcocs457i5fpymvciq1id8sl"); // endi - 3, nbez, bez->sflag);
+UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // }
+UNSUPPORTED("37cextn872jccni47tbuylnde"); // fixed = 1;
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("7016d9urlsksnhs3cnhecjcda"); // if (fixed == 0) { /* if no lt, or something went wrong, use original tail */
+UNSUPPORTED("eb2mhex2xw1imv1kk03mvjjou"); // /* Note: starti == 0 */
+UNSUPPORTED("bid01qt9cg10ravykoxdnzxyk"); // if (bez->sflag)
+UNSUPPORTED("5r4ncqv0i1d4e42av5wd1enpg"); // nbez->sp = bez->sp;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("6npoy905gpw81hrxzbjbr2cfx"); // /* complete Bezier, free garbage and attach new Bezier to edge
+UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */
+UNSUPPORTED("5xonbkojra95eckls0aqmri36"); // nbez->size = endi - starti + 1;
+UNSUPPORTED("ahcr8abvd2jxjhobcfhctvs1b"); // nbez->list = (pointf*)gmalloc((nbez->size)*sizeof(pointf));
+UNSUPPORTED("c9hwlt12y9khkl85dhudsnoji"); // for (i = 0, j = starti; i < nbez->size; i++, j++)
+UNSUPPORTED("bafoyknloit5d46b4iu8wll9p"); // nbez->list[i] = bez->list[j];
+UNSUPPORTED("60fikjho2iwcxgrd8xetr09m6"); // free(bez->list);
+UNSUPPORTED("3qr0q84nc1rpnmowlbyiowg2z"); // free(bez);
+UNSUPPORTED("70byyll04ac6uqbdyb54i1gr"); // ED_spl(e)->list = nbez;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8dlmdg7jixgrpxke9pgbbnous
+// void dot_compoundEdges(graph_t * g)
+public static Object dot_compoundEdges(Object... arg) {
+UNSUPPORTED("7ugy3v610tnicjpszcs8fvlvb"); // void dot_compoundEdges(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e;
+UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n;
+UNSUPPORTED("aice9tv6l0gls54iyk8147m5u"); // Dt_t* clustMap = mkClustMap (g);
+UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
+UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) {
+UNSUPPORTED("1urljgadk0bknazngl2w39evt"); // makeCompoundEdge(g, e, clustMap);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("11epc7udwyi67f5gszznmfwn8"); // dtclose(clustMap);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+}
diff --git a/src/gen/lib/dotgen/conc__c.java b/src/gen/lib/dotgen/conc__c.java
new file mode 100644
index 0000000..ea9d419
--- /dev/null
+++ b/src/gen/lib/dotgen/conc__c.java
@@ -0,0 +1,990 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * Project Info: http://plantuml.com
+ *
+ * If you like this project or if you find it useful, you can support us at:
+ *
+ * http://plantuml.com/patreon (only 1$ per month!)
+ * http://plantuml.com/paypal
+ *
+ * This file is part of Smetana.
+ * Smetana is a partial translation of Graphviz/Dot sources from C to Java.
+ *
+ * (C) Copyright 2009-2017, Arnaud Roques
+ *
+ * This translation is distributed under the same Licence as the original C program:
+ *
+ *************************************************************************
+ * Copyright (c) 2011 AT&T Intellectual Property
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: See CVS logs. Details at http://www.graphviz.org/
+ *************************************************************************
+ *
+ * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
+ * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0]
+ *
+ * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES
+ * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ *
+ * You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package gen.lib.dotgen;
+import static smetana.core.JUtilsDebug.ENTERING;
+import static smetana.core.JUtilsDebug.LEAVING;
+import static smetana.core.Macro.UNSUPPORTED;
+import h.boxf;
+import h.pointf;
+import smetana.core.JUtils;
+import smetana.core.__struct__;
+import smetana.core.jmp_buf;
+
+public class conc__c {
+//1 2digov3edok6d5srhgtlmrycs
+// extern lt_symlist_t lt_preloaded_symbols[]
+
+
+//1 baedz5i9est5csw3epz3cv7z
+// typedef Ppoly_t Ppolyline_t
+
+
+//1 9k44uhd5foylaeoekf3llonjq
+// extern Dtmethod_t* Dtset
+
+
+//1 1ahfywsmzcpcig2oxm7pt9ihj
+// extern Dtmethod_t* Dtbag
+
+
+//1 anhghfj3k7dmkudy2n7rvt31v
+// extern Dtmethod_t* Dtoset
+
+
+//1 5l6oj1ux946zjwvir94ykejbc
+// extern Dtmethod_t* Dtobag
+
+
+//1 2wtf222ak6cui8cfjnw6w377z
+// extern Dtmethod_t* Dtlist
+
+
+//1 d1s1s6ibtcsmst88e3057u9r7
+// extern Dtmethod_t* Dtstack
+
+
+//1 axa7mflo824p6fspjn1rdk0mt
+// extern Dtmethod_t* Dtqueue
+
+
+//1 ega812utobm4xx9oa9w9ayij6
+// extern Dtmethod_t* Dtdeque
+
+
+//1 cyfr996ur43045jv1tjbelzmj
+// extern Dtmethod_t* Dtorder
+
+
+//1 wlofoiftbjgrrabzb2brkycg
+// extern Dtmethod_t* Dttree
+
+
+//1 12bds94t7voj7ulwpcvgf6agr
+// extern Dtmethod_t* Dthash
+
+
+//1 9lqknzty480cy7zsubmabkk8h
+// extern Dtmethod_t _Dttree
+
+
+//1 bvn6zkbcp8vjdhkccqo1xrkrb
+// extern Dtmethod_t _Dthash
+
+
+//1 9lidhtd6nsmmv3e7vjv9e10gw
+// extern Dtmethod_t _Dtlist
+
+
+//1 34ujfamjxo7xn89u90oh2k6f8
+// extern Dtmethod_t _Dtqueue
+
+
+//1 3jy4aceckzkdv950h89p4wjc8
+// extern Dtmethod_t _Dtstack
+
+
+//1 8dfqgf3u1v830qzcjqh9o8ha7
+// extern Agmemdisc_t AgMemDisc
+
+
+//1 18k2oh2t6llfsdc5x0wlcnby8
+// extern Agiddisc_t AgIdDisc
+
+
+//1 a4r7hi80gdxtsv4hdoqpyiivn
+// extern Agiodisc_t AgIoDisc
+
+
+//1 bnzt5syjb7mgeru19114vd6xx
+// extern Agdisc_t AgDefaultDisc
+
+
+//1 35y2gbegsdjilegaribes00mg
+// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected
+
+
+//1 c2rygslq6bcuka3awmvy2b3ow
+// typedef Agsubnode_t Agnoderef_t
+
+
+//1 xam6yv0dcsx57dtg44igpbzn
+// typedef Dtlink_t Agedgeref_t
+
+
+//1 nye6dsi1twkbddwo9iffca1j
+// extern char *Version
+
+
+//1 65mu6k7h7lb7bx14jpiw7iyxr
+// extern char **Files
+
+
+//1 2rpjdzsdyrvomf00zcs3u3dyn
+// extern const char **Lib
+
+
+//1 6d2f111lntd2rsdt4gswh5909
+// extern char *CmdName
+
+
+//1 a0ltq04fpeg83soa05a2fkwb2
+// extern char *specificFlags
+
+
+//1 1uv30qeqq2jh6uznlr4dziv0y
+// extern char *specificItems
+
+
+//1 7i4hkvngxe3x7lmg5h6b3t9g3
+// extern char *Gvfilepath
+
+
+//1 9jp96pa73kseya3w6sulxzok6
+// extern char *Gvimagepath
+
+
+//1 40ylumfu7mrvawwf4v2asvtwk
+// extern unsigned char Verbose
+
+
+//1 93st8awjy1z0h07n28qycbaka
+// extern unsigned char Reduce
+
+
+//1 f2vs67ts992erf8onwfglurzp
+// extern int MemTest
+
+
+//1 c6f8whijgjwwagjigmxlwz3gb
+// extern char *HTTPServerEnVar
+
+
+//1 cp4hzj7p87m7arw776d3bt7aj
+// extern char *Output_file_name
+
+
+//1 a3rqagofsgraie6mx0krzkgsy
+// extern int graphviz_errors
+
+
+//1 5up05203r4kxvjn1m4njcgq5x
+// extern int Nop
+
+
+//1 umig46cco431x14b3kosde2t
+// extern double PSinputscale
+
+
+//1 52bj6v8fqz39khasobljfukk9
+// extern int Syntax_errors
+
+
+//1 9ekf2ina8fsjj6y6i0an6somj
+// extern int Show_cnt
+
+
+//1 38di5qi3nkxkq65onyvconk3r
+// extern char** Show_boxes
+
+
+//1 6ri6iu712m8mpc7t2670etpcw
+// extern int CL_type
+
+
+//1 bomxiw3gy0cgd1ydqtek7fpxr
+// extern unsigned char Concentrate
+
+
+//1 cqy3gqgcq8empdrbnrhn84058
+// extern double Epsilon
+
+
+//1 64slegfoouqeg0rmbyjrm8wgr
+// extern int MaxIter
+
+
+//1 88wdinpnmfs4mab4aw62yb0bg
+// extern int Ndim
+
+
+//1 8bbad3ogcelqnnvo5br5s05gq
+// extern int State
+
+
+//1 17rnd8q45zclfn68qqst2vxxn
+// extern int EdgeLabelsDone
+
+
+//1 ymx1z4s8cznjifl2d9f9m8jr
+// extern double Initial_dist
+
+
+//1 a33bgl0c3uqb3trx419qulj1x
+// extern double Damping
+
+
+//1 d9lvrpjg1r0ojv40pod1xwk8n
+// extern int Y_invert
+
+
+//1 71efkfs77q5tq9ex6y0f4kanh
+// extern int GvExitOnUsage
+
+
+//1 4xy2dkdkv0acs2ue9eca8hh2e
+// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin
+
+
+//1 9js5gxgzr74eakgtfhnbws3t9
+// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle
+
+
+//1 anqllp9sj7wo45w6bm11j8trn
+// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth
+
+
+//1 bh0z9puipqw7gymjd5h5b8s6i
+// extern struct fdpParms_s* fdp_parms
+
+
+
+
+//3 ciez0pfggxdljedzsbklq49f0
+// static inline point pointof(int x, int y)
+public static Object pointof(Object... arg) {
+UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x;
+UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 c1s4k85p1cdfn176o3uryeros
+// static inline pointf pointfof(double x, double y)
+public static __struct__<pointf> pointfof(double x, double y) {
+// WARNING!! STRUCT
+return pointfof_w_(x, y).copy();
+}
+private static __struct__<pointf> pointfof_w_(double x, double y) {
+ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", x);
+ r.setDouble("y", y);
+ return r;
+} finally {
+LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof");
+}
+}
+
+
+
+
+//3 7cufnfitrh935ew093mw0i4b7
+// static inline box boxof(int llx, int lly, int urx, int ury)
+public static Object boxof(Object... arg) {
+UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly;
+UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury;
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 1vvsta5i8of59frav6uymguav
+// static inline boxf boxfof(double llx, double lly, double urx, double ury)
+public static __struct__<boxf> boxfof(double llx, double lly, double urx, double ury) {
+// WARNING!! STRUCT
+return boxfof_w_(llx, lly, urx, ury).copy();
+}
+private static __struct__<boxf> boxfof_w_(double llx, double lly, double urx, double ury) {
+ENTERING("1vvsta5i8of59frav6uymguav","boxfof");
+try {
+ final __struct__<boxf> b = JUtils.from(boxf.class);
+ b.getStruct("LL").setDouble("x", llx);
+ b.getStruct("LL").setDouble("y", lly);
+ b.getStruct("UR").setDouble("x", urx);
+ b.getStruct("UR").setDouble("y", ury);
+ return b;
+} finally {
+LEAVING("1vvsta5i8of59frav6uymguav","boxfof");
+}
+}
+
+
+
+
+//3 1n5xl70wxuabyf97mclvilsm6
+// static inline point add_point(point p, point q)
+public static Object add_point(Object... arg) {
+UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x;
+UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 arrsbik9b5tnfcbzsm8gr2chx
+// static inline pointf add_pointf(pointf p, pointf q)
+public static __struct__<pointf> add_pointf(final __struct__<pointf> p, final __struct__<pointf> q) {
+// WARNING!! STRUCT
+return add_pointf_w_(p.copy(), q.copy()).copy();
+}
+private static __struct__<pointf> add_pointf_w_(final __struct__<pointf> p, final __struct__<pointf> q) {
+ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", p.getDouble("x") + q.getDouble("x"));
+ r.setDouble("y", p.getDouble("y") + q.getDouble("y"));
+ return r;
+} finally {
+LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+}
+}
+
+
+
+
+//3 ai2dprak5y6obdsflguh5qbd7
+// static inline point sub_point(point p, point q)
+public static Object sub_point(Object... arg) {
+UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 16f6pyogcv3j7n2p0n8giqqgh
+// static inline pointf sub_pointf(pointf p, pointf q)
+public static Object sub_pointf(Object... arg) {
+UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9k50jgrhc4f9824vf8ony74rw
+// static inline point mid_point(point p, point q)
+public static Object mid_point(Object... arg) {
+UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2;
+UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 59c4f7im0ftyowhnzzq2v9o1x
+// static inline pointf mid_pointf(pointf p, pointf q)
+public static Object mid_pointf(Object... arg) {
+UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.;
+UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 5r18p38gisvcx3zsvbb9saixx
+// static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+public static Object interpolate_pointf(Object... arg) {
+UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r;
+UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x);
+UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y);
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bxzrv2ghq04qk5cbyy68s4mol
+// static inline point exch_xy(point p)
+public static Object exch_xy(Object... arg) {
+UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9lt3e03tac6h6sydljrcws8fd
+// static inline pointf exch_xyf(pointf p)
+public static Object exch_xyf(Object... arg) {
+UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8l9qhieokthntzdorlu5zn29b
+// static inline box box_bb(box b0, box b1)
+public static Object box_bb(Object... arg) {
+UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 clws9h3bbjm0lw3hexf8nl4c4
+// static inline boxf boxf_bb(boxf b0, boxf b1)
+public static Object boxf_bb(Object... arg) {
+UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bit6ycxo1iqd2al92y8gkzlvb
+// static inline box box_intersect(box b0, box b1)
+public static Object box_intersect(Object... arg) {
+UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8gfybie7k6pgb3o1a6llgpwng
+// static inline boxf boxf_intersect(boxf b0, boxf b1)
+public static Object boxf_intersect(Object... arg) {
+UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 7z8j2quq65govaaejrz7b4cvb
+// static inline int box_overlap(box b0, box b1)
+public static Object box_overlap(Object... arg) {
+UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4z0suuut2acsay5m8mg9dqjdu
+// static inline int boxf_overlap(boxf b0, boxf b1)
+public static Object boxf_overlap(Object... arg) {
+UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 dd34swz5rmdgu3a2np2a4h1dy
+// static inline int box_contains(box b0, box b1)
+public static Object box_contains(Object... arg) {
+UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8laj1bspbu2i1cjd9upr7xt32
+// static inline int boxf_contains(boxf b0, boxf b1)
+public static Object boxf_contains(Object... arg) {
+UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4wf5swkz24xx51ja2dynbycu1
+// static inline pointf perp (pointf p)
+public static Object perp(Object... arg) {
+UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6dtlpzv4mvgzb9o0b252yweuv
+// static inline pointf scale (double c, pointf p)
+public static Object scale(Object... arg) {
+UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x;
+UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+//1 540u5gu9i0x1wzoxqqx5n2vwp
+// static jmp_buf jbuf
+private static jmp_buf jbuf = new jmp_buf();
+
+
+
+//3 hiohl94lfxzfx1mjrwsqz37c
+// static boolean samedir(edge_t * e, edge_t * f)
+public static Object samedir(Object... arg) {
+UNSUPPORTED("29nu0bleg7r6obvwg17es3eva"); // static boolean samedir(edge_t * e, edge_t * f)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("5prsmuiayujknpr12ysexceww"); // edge_t *e0, *f0;
+UNSUPPORTED("a87jx348k6dr2owi2ge2e9r86"); // for (e0 = e; ED_edge_type(e0) != 0; e0 = ED_to_orig(e0));
+UNSUPPORTED("cws6ess4x4o5kp609fhzl087m"); // for (f0 = f; ED_edge_type(f0) != 0; f0 = ED_to_orig(f0));
+UNSUPPORTED("ay9e2jfde73nguyfs214f5pif"); // if (ED_conc_opp_flag(e0))
+UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0;
+UNSUPPORTED("3qs48pp09z881fbxjwqfm4u1r"); // if (ED_conc_opp_flag(f0))
+UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0;
+UNSUPPORTED("5p8e0qmobo1inow3m2l1iis5t"); // return ((ND_rank(agtail(f0)) - ND_rank(aghead(f0)))
+UNSUPPORTED("6n93ns5ibdr64eugmmuj5rn02"); // * (ND_rank(agtail(e0)) - ND_rank(aghead(e0))) > 0);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6pb0av8sjhmso4mrttaqsuv6h
+// static boolean downcandidate(node_t * v)
+public static Object downcandidate(Object... arg) {
+UNSUPPORTED("5rcx94deeexsyuzu3uu8v1yk2"); // static boolean downcandidate(node_t * v)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("6jfx7802edvf66slrrtiwdr3x"); // return ((ND_node_type(v) == 1) && (ND_in(v).size == 1)
+UNSUPPORTED("bc5c94xpimskyg4uxfcpjzjbk"); // && (ND_out(v).size == 1) && (ND_label(v) == NULL));
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 5yy2uwgnjzdmsqjig6m7pi4dh
+// static boolean bothdowncandidates(node_t * u, node_t * v)
+public static Object bothdowncandidates(Object... arg) {
+UNSUPPORTED("70c1exdtu7f7a0g2xvtjf1h4v"); // static boolean bothdowncandidates(node_t * u, node_t * v)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("9b48a157azcrz2ihzqehhpsvs"); // edge_t *e, *f;
+UNSUPPORTED("n6nd0vbfveotd6ua08vaz9kc"); // e = ND_in(u).list[0];
+UNSUPPORTED("a1yoae6m61u88abwgei4iwrv6"); // f = ND_in(v).list[0];
+UNSUPPORTED("1igpcdu1bpbjym8gly2bydxmp"); // if (downcandidate(v) && (agtail(e) == agtail(f))) {
+UNSUPPORTED("b0c3dm89khvdfaecz8vndzs4g"); // return samedir(e, f)
+UNSUPPORTED("b65ygvpn73rc7xtl4ogmyfdc3"); // && (portcmp(ED_tail_port(e), ED_tail_port(f)) == 0);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 pnmyeaeyufqhbdt9phmr34w8
+// static boolean upcandidate(node_t * v)
+public static Object upcandidate(Object... arg) {
+UNSUPPORTED("1bwv2llboqrh45zw5aau3g8wy"); // static boolean upcandidate(node_t * v)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("8cpz8jcws7vc5ljvhpqsvtr95"); // return ((ND_node_type(v) == 1) && (ND_out(v).size == 1)
+UNSUPPORTED("3h8pm2cl2yek27t8a1r51vwwm"); // && (ND_in(v).size == 1) && (ND_label(v) == NULL));
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 eoltukpbxfjnxh04nr63ockc2
+// static boolean bothupcandidates(node_t * u, node_t * v)
+public static Object bothupcandidates(Object... arg) {
+UNSUPPORTED("cqzsemphpsgvcisjr9bifnbar"); // static boolean bothupcandidates(node_t * u, node_t * v)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("9b48a157azcrz2ihzqehhpsvs"); // edge_t *e, *f;
+UNSUPPORTED("9zpg3620h4heznn3b6mf3rkzc"); // e = ND_out(u).list[0];
+UNSUPPORTED("1vg7brvscwl8tqwcwgf2vc1iu"); // f = ND_out(v).list[0];
+UNSUPPORTED("232o0u3m0hk33kom12ddv5cf5"); // if (upcandidate(v) && (aghead(e) == aghead(f))) {
+UNSUPPORTED("b0c3dm89khvdfaecz8vndzs4g"); // return samedir(e, f)
+UNSUPPORTED("2sbh73r3hanfplu15qi49xx9e"); // && (portcmp(ED_head_port(e), ED_head_port(f)) == 0);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9ugj5cxjwh6izs7qwoeplieyq
+// static void mergevirtual(graph_t * g, int r, int lpos, int rpos, int dir)
+public static Object mergevirtual(Object... arg) {
+UNSUPPORTED("7fykjo0tsdbiv0zeb6x3fb8fs"); // static void mergevirtual(graph_t * g, int r, int lpos, int rpos, int dir)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("3omv4g8dibh1pqrvt46eo9gvq"); // int i, k;
+UNSUPPORTED("amyi14irz6dbz0367id35hvp"); // node_t *left, *right;
+UNSUPPORTED("8f8h355l1495yy9dbaz0it2in"); // edge_t *e, *f, *e0;
+UNSUPPORTED("231cg7wmyzy38x2wt2fo5w4mj"); // left = GD_rank(g)[r].v[lpos];
+UNSUPPORTED("ell7qlxmonsekwusp8xopfdfu"); // /* merge all right nodes into the leftmost one */
+UNSUPPORTED("1eeld04u92ygccgaquiq6xaex"); // for (i = lpos + 1; i <= rpos; i++) {
+UNSUPPORTED("5elwzk0mnuzvd2hm4hjqerr0f"); // right = GD_rank(g)[r].v[i];
+UNSUPPORTED("c1uckn7ho04t7ub7xklkxju8h"); // if (dir == 1) {
+UNSUPPORTED("b0aboa5nfb7ujemy7qx50riyo"); // while ((e = ND_out(right).list[0])) {
+UNSUPPORTED("61h4dtrrxp3gqi4qq4fa84dj6"); // for (k = 0; (f = ND_out(left).list[k]); k++)
+UNSUPPORTED("e0g1j10s0bixkrbon6u0yv9c6"); // if (aghead(f) == aghead(e))
+UNSUPPORTED("a5064jph9xpw67dcun2my4mcm"); // break;
+UNSUPPORTED("34init75thgijzfyzza21moxe"); // if (f == NULL)
+UNSUPPORTED("bevz1zn0blsflvx6jkk50rba9"); // f = virtual_edge(left, aghead(e), e);
+UNSUPPORTED("asb45d5rqv8it74v7tne8f2fg"); // while ((e0 = ND_in(right).list[0])) {
+UNSUPPORTED("cuttljjerosdc8dabm2bnnyb8"); // merge_oneway(e0, f);
+UNSUPPORTED("7v5ie1ooevp21zluuewlboyb5"); // /*ED_weight(f) += ED_weight(e0); */
+UNSUPPORTED("5s7a1scru7071fh3chrychja8"); // delete_fast_edge(e0);
+UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // }
+UNSUPPORTED("4xzroqevvsjt307vvx10f8atw"); // delete_fast_edge(e);
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else {
+UNSUPPORTED("a9byy1rucxlzdlxewp2rv7gqq"); // while ((e = ND_in(right).list[0])) {
+UNSUPPORTED("c7omxpe29tnl9ydgup95clcci"); // for (k = 0; (f = ND_in(left).list[k]); k++)
+UNSUPPORTED("a8u5bsqed458j870nosh64yic"); // if (agtail(f) == agtail(e))
+UNSUPPORTED("a5064jph9xpw67dcun2my4mcm"); // break;
+UNSUPPORTED("34init75thgijzfyzza21moxe"); // if (f == NULL)
+UNSUPPORTED("dbqismmahqza8fnkjhntz4ll0"); // f = virtual_edge(agtail(e), left, e);
+UNSUPPORTED("eukpmnw48odadjb55ie78fit9"); // while ((e0 = ND_out(right).list[0])) {
+UNSUPPORTED("cuttljjerosdc8dabm2bnnyb8"); // merge_oneway(e0, f);
+UNSUPPORTED("5s7a1scru7071fh3chrychja8"); // delete_fast_edge(e0);
+UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // }
+UNSUPPORTED("4xzroqevvsjt307vvx10f8atw"); // delete_fast_edge(e);
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("20831ggpnh7lvyeu87hwsm0t3"); // assert(ND_in(right).size + ND_out(right).size == 0);
+UNSUPPORTED("ahkylw437651e5mf9138vl35w"); // delete_fast_node(g, right);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("4yunnb5j9hoe6bcsy79b69fh0"); // k = lpos + 1;
+UNSUPPORTED("1ta71a6pw0aspmpknbt3wjj4k"); // i = rpos + 1;
+UNSUPPORTED("6vm80zqnn9yxelf6y0p8pdhlh"); // while (i < GD_rank(g)[r].n) {
+UNSUPPORTED("aour3qu5mlw9cykjikxt0fxcy"); // node_t *n;
+UNSUPPORTED("2z4aexzipvp6690gajlfsw9ub"); // n = GD_rank(g)[r].v[k] = GD_rank(g)[r].v[i];
+UNSUPPORTED("98h1qvrthbfxdz7717i3e1ylh"); // ND_order(n) = k;
+UNSUPPORTED("9zq7xtwq5cysffia17vtbbt9u"); // k++;
+UNSUPPORTED("chd2f5z6rt19lbaye25ej7q6j"); // i++;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("85og729c3c58hh8wdsc8uec8l"); // GD_rank(g)[r].n = k;
+UNSUPPORTED("d8ajai913hx6i4otnoso8kawv"); // GD_rank(g)[r].v[k] = NULL;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 c20jfo46p56bjbachxehha9pu
+// static void infuse(graph_t * g, node_t * n)
+public static Object infuse(Object... arg) {
+UNSUPPORTED("etmqgz9znjdg1p7di2fe6kis4"); // static void infuse(graph_t * g, node_t * n)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("9roij9rixfrdr3vio8wvn6cym"); // node_t *lead;
+UNSUPPORTED("1dhtnolphtqb1vhzddsjs4997"); // lead = GD_rankleader(g)[ND_rank(n)];
+UNSUPPORTED("7sbrmrdrc6qm86jwzs2p1q0bv"); // if ((lead == NULL) || (ND_order(lead) > ND_order(n)))
+UNSUPPORTED("4kboqcebkf36wvklvhc0smxyf"); // GD_rankleader(g)[ND_rank(n)] = n;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 e8chm1nms49vyf1mp9zdq7e3n
+// static void rebuild_vlists(graph_t * g)
+public static Object rebuild_vlists(Object... arg) {
+UNSUPPORTED("8lxgqgoebpr6pqqvqimb2nold"); // static void rebuild_vlists(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c566lguiyozynv7spc9xx8agv"); // int c, i, r, maxi;
+UNSUPPORTED("augenu6r3rx501311lht9q7qr"); // node_t *n, *lead;
+UNSUPPORTED("3bqpdb6f6p2qw9s76g6txvvro"); // edge_t *e, *rep;
+UNSUPPORTED("br5jnq2zjxxbz2mw0z8ns5uug"); // for (r = GD_minrank(g); r <= GD_maxrank(g); r++)
+UNSUPPORTED("2rpy1wfe6lhmak6ce4v24v4ao"); // GD_rankleader(g)[r] = NULL;
+UNSUPPORTED("4frgznaid5m5mdte931ti7cw"); // dot_scan_ranks(g);
+UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
+UNSUPPORTED("7zlur6lceb4yawe9tb9amgq9s"); // infuse(g, n);
+UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) {
+UNSUPPORTED("7uff9xbfc6s0idd1vxtjm2qth"); // for (rep = e; ED_to_virt(rep); rep = ED_to_virt(rep));
+UNSUPPORTED("4oqbk654pzi7973xynf59fntp"); // while (ND_rank(aghead(rep)) < ND_rank(aghead(e))) {
+UNSUPPORTED("87e8ucrmzsn4x3vikrp4zqx96"); // infuse(g, aghead(rep));
+UNSUPPORTED("9l3almai3ugohjo61vxf13yb7"); // rep = ND_out(aghead(rep)).list[0];
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("60nab7gyukq3bs8e6dizhbacy"); // for (r = GD_minrank(g); r <= GD_maxrank(g); r++) {
+UNSUPPORTED("arvyjg1l9juza75tj23zsykps"); // lead = GD_rankleader(g)[r];
+UNSUPPORTED("4atymss3ar3wje54szsaa3omf"); // if (GD_rank(dot_root(g))[r].v[ND_order(lead)] != lead) {
+UNSUPPORTED("b3cixj6rtwwwmjmebo4r2h15k"); // agerr(AGERR, "rebuiltd_vlists: rank lead %s not in order %d of rank %d\n",
+UNSUPPORTED("6udrpqggfjxt0na5cdb0725bn"); // agnameof(lead), ND_order(lead), r);
+UNSUPPORTED("edg6zn44g1egn9rxfpiizzrjo"); // longjmp(jbuf, 1);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("3907i7loyifjuq3p41y45kyhm"); // GD_rank(g)[r].v =
+UNSUPPORTED("7j4ogkw53pg0iv0mmko48fw0x"); // GD_rank(dot_root(g))[r].v + ND_order((GD_rankleader(g)[r]));
+UNSUPPORTED("2c6wxmjs9ytmjutd79l3vt4gl"); // maxi = -1;
+UNSUPPORTED("6eix918gmfs16624x6omusuhm"); // for (i = 0; i < GD_rank(g)[r].n; i++) {
+UNSUPPORTED("34a7o67ylktm1es8bkuaeejk2"); // if ((n = GD_rank(g)[r].v[i]) == NULL)
+UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break;
+UNSUPPORTED("e0gk7m0zrsus94mtf86d91p04"); // if (ND_node_type(n) == 0) {
+UNSUPPORTED("d13494tcz4gbtml8c1ev3ktzb"); // if (agcontains(g, n))
+UNSUPPORTED("80spg5b3li0mhxyw957sp2n7q"); // maxi = i;
+UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else
+UNSUPPORTED("czyohktf9bkx4udfqhx42f4lu"); // break;
+UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else {
+UNSUPPORTED("3gm29k6z4aks8v0k1r7qvxvlt"); // edge_t *e;
+UNSUPPORTED("42bmttyjay3sng4c3d0tsvkn9"); // for (e = ND_in(n).list[0]; e && ED_to_orig(e);
+UNSUPPORTED("148t8jlrp8lwlu4pyvlslf49l"); // e = ED_to_orig(e));
+UNSUPPORTED("5n3hyea9ita57alojbawbcurz"); // if (e && (agcontains(g, agtail(e)))
+UNSUPPORTED("2u3pptvaudhj3kaydu0xn0c9x"); // && agcontains(g, aghead(e)))
+UNSUPPORTED("80spg5b3li0mhxyw957sp2n7q"); // maxi = i;
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("csorvv6yhyohqnsvhazkk6eje"); // if (maxi == -1)
+UNSUPPORTED("eq3mmft8bst07qw88wjzgvoet"); // agerr(AGWARN, "degenerate concentrated rank %s,%d\n", agnameof(g),
+UNSUPPORTED("b6bf10m2f2pvxgkfcax559640"); // r);
+UNSUPPORTED("10l3x6nke8pra4fu5ysnu6j08"); // GD_rank(g)[r].n = maxi + 1;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("7z5fb6iyowsosn1hiz7opeoc6"); // for (c = 1; c <= GD_n_cluster(g); c++)
+UNSUPPORTED("1d7lqtmagp5mwcbbkf4xawdog"); // rebuild_vlists(GD_clust(g)[c]);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 3mzzkxpsezmtvlbzshvr46b8m
+// void dot_concentrate(graph_t * g)
+public static Object dot_concentrate(Object... arg) {
+UNSUPPORTED("4h7xkpw4zpae6ztth270w22gd"); // void dot_concentrate(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("62hcnpegd6vvkgtfo3a833aq9"); // int c, r, leftpos, rightpos;
+UNSUPPORTED("amyi14irz6dbz0367id35hvp"); // node_t *left, *right;
+UNSUPPORTED("1exryvusfp7fkh0rn8bxcz96g"); // if (GD_maxrank(g) - GD_minrank(g) <= 1)
+UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return;
+UNSUPPORTED("1o57fdj7j63samf9jysgvpqnq"); // /* this is the downward looking pass. r is a candidate rank. */
+UNSUPPORTED("ca08a4ijjaxoo89carapxu5ur"); // for (r = 1; GD_rank(g)[r + 1].n; r++) {
+UNSUPPORTED("8elk0ekrvmk0yt6bmbwub0epc"); // for (leftpos = 0; leftpos < GD_rank(g)[r].n; leftpos++) {
+UNSUPPORTED("ela65u1ff5sc7nw7eq6hioji0"); // left = GD_rank(g)[r].v[leftpos];
+UNSUPPORTED("7yq5j8b980yc5rz1e4lkwgmth"); // if (downcandidate(left) == 0)
+UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue;
+UNSUPPORTED("exizgsc0bwm37dxc6j6op74lz"); // for (rightpos = leftpos + 1; rightpos < GD_rank(g)[r].n;
+UNSUPPORTED("5a4wx0786piefhj7q3m241wof"); // rightpos++) {
+UNSUPPORTED("3jh1iupmf6freiri4v7zbt87k"); // right = GD_rank(g)[r].v[rightpos];
+UNSUPPORTED("7ap3iy5ysmyd0x869id0jyedv"); // if (bothdowncandidates(left, right) == 0)
+UNSUPPORTED("czyohktf9bkx4udfqhx42f4lu"); // break;
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("3q4uw7garqdhjalzpk1bivu8s"); // if (rightpos - leftpos > 1)
+UNSUPPORTED("4o5cptipygbr3qu2m6rkk4qwg"); // mergevirtual(g, r, leftpos, rightpos - 1, 1);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("cakeuerd3mfjfwy396sci21tn"); // /* this is the corresponding upward pass */
+UNSUPPORTED("9cqq87ffcq47f55xlupeeuo6u"); // while (r > 0) {
+UNSUPPORTED("8elk0ekrvmk0yt6bmbwub0epc"); // for (leftpos = 0; leftpos < GD_rank(g)[r].n; leftpos++) {
+UNSUPPORTED("ela65u1ff5sc7nw7eq6hioji0"); // left = GD_rank(g)[r].v[leftpos];
+UNSUPPORTED("dgbio6b5e3ja3yul0q4rl5qqn"); // if (upcandidate(left) == 0)
+UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue;
+UNSUPPORTED("exizgsc0bwm37dxc6j6op74lz"); // for (rightpos = leftpos + 1; rightpos < GD_rank(g)[r].n;
+UNSUPPORTED("5a4wx0786piefhj7q3m241wof"); // rightpos++) {
+UNSUPPORTED("3jh1iupmf6freiri4v7zbt87k"); // right = GD_rank(g)[r].v[rightpos];
+UNSUPPORTED("6j41xobwrcrep12b6hhs39r8z"); // if (bothupcandidates(left, right) == 0)
+UNSUPPORTED("czyohktf9bkx4udfqhx42f4lu"); // break;
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("3q4uw7garqdhjalzpk1bivu8s"); // if (rightpos - leftpos > 1)
+UNSUPPORTED("c3v2wops656i36vmsec5ezxk0"); // mergevirtual(g, r, leftpos, rightpos - 1, 0);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("8a1wsnjguqfvz8vfx6erejakp"); // r--;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("ci9r8sj8tbc6yer5c8cebb0cm"); // if (setjmp(jbuf)) {
+UNSUPPORTED("ej9htgkxfq6bintcw04c6svwu"); // agerr(AGPREV, "concentrate=true may not work correctly.\n");
+UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("7z5fb6iyowsosn1hiz7opeoc6"); // for (c = 1; c <= GD_n_cluster(g); c++)
+UNSUPPORTED("1d7lqtmagp5mwcbbkf4xawdog"); // rebuild_vlists(GD_clust(g)[c]);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+}
diff --git a/src/gen/lib/dotgen/decomp__c.java b/src/gen/lib/dotgen/decomp__c.java
new file mode 100644
index 0000000..75e30a6
--- /dev/null
+++ b/src/gen/lib/dotgen/decomp__c.java
@@ -0,0 +1,848 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * Project Info: http://plantuml.com
+ *
+ * If you like this project or if you find it useful, you can support us at:
+ *
+ * http://plantuml.com/patreon (only 1$ per month!)
+ * http://plantuml.com/paypal
+ *
+ * This file is part of Smetana.
+ * Smetana is a partial translation of Graphviz/Dot sources from C to Java.
+ *
+ * (C) Copyright 2009-2017, Arnaud Roques
+ *
+ * This translation is distributed under the same Licence as the original C program:
+ *
+ *************************************************************************
+ * Copyright (c) 2011 AT&T Intellectual Property
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: See CVS logs. Details at http://www.graphviz.org/
+ *************************************************************************
+ *
+ * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
+ * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0]
+ *
+ * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES
+ * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ *
+ * You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package gen.lib.dotgen;
+import static gen.lib.cgraph.edge__c.aghead;
+import static gen.lib.cgraph.edge__c.agtail;
+import static gen.lib.cgraph.node__c.agfstnode;
+import static gen.lib.cgraph.node__c.agnxtnode;
+import static gen.lib.common.utils__c.UF_find;
+import static smetana.core.JUtils.EQ;
+import static smetana.core.JUtilsDebug.ENTERING;
+import static smetana.core.JUtilsDebug.LEAVING;
+import static smetana.core.Macro.GD_comp;
+import static smetana.core.Macro.GD_n_nodes;
+import static smetana.core.Macro.GD_nlist;
+import static smetana.core.Macro.GD_rankleader;
+import static smetana.core.Macro.ND_clust;
+import static smetana.core.Macro.ND_flat_in;
+import static smetana.core.Macro.ND_flat_out;
+import static smetana.core.Macro.ND_in;
+import static smetana.core.Macro.ND_mark;
+import static smetana.core.Macro.ND_next;
+import static smetana.core.Macro.ND_out;
+import static smetana.core.Macro.ND_prev;
+import static smetana.core.Macro.ND_rank;
+import static smetana.core.Macro.UNSUPPORTED;
+import h.Agedge_s;
+import h.Agnode_s;
+import h.Agraph_s;
+import h.ST_elist;
+import h.boxf;
+import h.elist;
+import h.pointf;
+import smetana.core.JUtils;
+import smetana.core.Z;
+import smetana.core.__array_of_struct__;
+import smetana.core.__struct__;
+
+public class decomp__c {
+//1 2digov3edok6d5srhgtlmrycs
+// extern lt_symlist_t lt_preloaded_symbols[]
+
+
+//1 baedz5i9est5csw3epz3cv7z
+// typedef Ppoly_t Ppolyline_t
+
+
+//1 9k44uhd5foylaeoekf3llonjq
+// extern Dtmethod_t* Dtset
+
+
+//1 1ahfywsmzcpcig2oxm7pt9ihj
+// extern Dtmethod_t* Dtbag
+
+
+//1 anhghfj3k7dmkudy2n7rvt31v
+// extern Dtmethod_t* Dtoset
+
+
+//1 5l6oj1ux946zjwvir94ykejbc
+// extern Dtmethod_t* Dtobag
+
+
+//1 2wtf222ak6cui8cfjnw6w377z
+// extern Dtmethod_t* Dtlist
+
+
+//1 d1s1s6ibtcsmst88e3057u9r7
+// extern Dtmethod_t* Dtstack
+
+
+//1 axa7mflo824p6fspjn1rdk0mt
+// extern Dtmethod_t* Dtqueue
+
+
+//1 ega812utobm4xx9oa9w9ayij6
+// extern Dtmethod_t* Dtdeque
+
+
+//1 cyfr996ur43045jv1tjbelzmj
+// extern Dtmethod_t* Dtorder
+
+
+//1 wlofoiftbjgrrabzb2brkycg
+// extern Dtmethod_t* Dttree
+
+
+//1 12bds94t7voj7ulwpcvgf6agr
+// extern Dtmethod_t* Dthash
+
+
+//1 9lqknzty480cy7zsubmabkk8h
+// extern Dtmethod_t _Dttree
+
+
+//1 bvn6zkbcp8vjdhkccqo1xrkrb
+// extern Dtmethod_t _Dthash
+
+
+//1 9lidhtd6nsmmv3e7vjv9e10gw
+// extern Dtmethod_t _Dtlist
+
+
+//1 34ujfamjxo7xn89u90oh2k6f8
+// extern Dtmethod_t _Dtqueue
+
+
+//1 3jy4aceckzkdv950h89p4wjc8
+// extern Dtmethod_t _Dtstack
+
+
+//1 8dfqgf3u1v830qzcjqh9o8ha7
+// extern Agmemdisc_t AgMemDisc
+
+
+//1 18k2oh2t6llfsdc5x0wlcnby8
+// extern Agiddisc_t AgIdDisc
+
+
+//1 a4r7hi80gdxtsv4hdoqpyiivn
+// extern Agiodisc_t AgIoDisc
+
+
+//1 bnzt5syjb7mgeru19114vd6xx
+// extern Agdisc_t AgDefaultDisc
+
+
+//1 35y2gbegsdjilegaribes00mg
+// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected
+
+
+//1 c2rygslq6bcuka3awmvy2b3ow
+// typedef Agsubnode_t Agnoderef_t
+
+
+//1 xam6yv0dcsx57dtg44igpbzn
+// typedef Dtlink_t Agedgeref_t
+
+
+//1 nye6dsi1twkbddwo9iffca1j
+// extern char *Version
+
+
+//1 65mu6k7h7lb7bx14jpiw7iyxr
+// extern char **Files
+
+
+//1 2rpjdzsdyrvomf00zcs3u3dyn
+// extern const char **Lib
+
+
+//1 6d2f111lntd2rsdt4gswh5909
+// extern char *CmdName
+
+
+//1 a0ltq04fpeg83soa05a2fkwb2
+// extern char *specificFlags
+
+
+//1 1uv30qeqq2jh6uznlr4dziv0y
+// extern char *specificItems
+
+
+//1 7i4hkvngxe3x7lmg5h6b3t9g3
+// extern char *Gvfilepath
+
+
+//1 9jp96pa73kseya3w6sulxzok6
+// extern char *Gvimagepath
+
+
+//1 40ylumfu7mrvawwf4v2asvtwk
+// extern unsigned char Verbose
+
+
+//1 93st8awjy1z0h07n28qycbaka
+// extern unsigned char Reduce
+
+
+//1 f2vs67ts992erf8onwfglurzp
+// extern int MemTest
+
+
+//1 c6f8whijgjwwagjigmxlwz3gb
+// extern char *HTTPServerEnVar
+
+
+//1 cp4hzj7p87m7arw776d3bt7aj
+// extern char *Output_file_name
+
+
+//1 a3rqagofsgraie6mx0krzkgsy
+// extern int graphviz_errors
+
+
+//1 5up05203r4kxvjn1m4njcgq5x
+// extern int Nop
+
+
+//1 umig46cco431x14b3kosde2t
+// extern double PSinputscale
+
+
+//1 52bj6v8fqz39khasobljfukk9
+// extern int Syntax_errors
+
+
+//1 9ekf2ina8fsjj6y6i0an6somj
+// extern int Show_cnt
+
+
+//1 38di5qi3nkxkq65onyvconk3r
+// extern char** Show_boxes
+
+
+//1 6ri6iu712m8mpc7t2670etpcw
+// extern int CL_type
+
+
+//1 bomxiw3gy0cgd1ydqtek7fpxr
+// extern unsigned char Concentrate
+
+
+//1 cqy3gqgcq8empdrbnrhn84058
+// extern double Epsilon
+
+
+//1 64slegfoouqeg0rmbyjrm8wgr
+// extern int MaxIter
+
+
+//1 88wdinpnmfs4mab4aw62yb0bg
+// extern int Ndim
+
+
+//1 8bbad3ogcelqnnvo5br5s05gq
+// extern int State
+
+
+//1 17rnd8q45zclfn68qqst2vxxn
+// extern int EdgeLabelsDone
+
+
+//1 ymx1z4s8cznjifl2d9f9m8jr
+// extern double Initial_dist
+
+
+//1 a33bgl0c3uqb3trx419qulj1x
+// extern double Damping
+
+
+//1 d9lvrpjg1r0ojv40pod1xwk8n
+// extern int Y_invert
+
+
+//1 71efkfs77q5tq9ex6y0f4kanh
+// extern int GvExitOnUsage
+
+
+//1 4xy2dkdkv0acs2ue9eca8hh2e
+// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin
+
+
+//1 9js5gxgzr74eakgtfhnbws3t9
+// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle
+
+
+//1 anqllp9sj7wo45w6bm11j8trn
+// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth
+
+
+//1 bh0z9puipqw7gymjd5h5b8s6i
+// extern struct fdpParms_s* fdp_parms
+
+
+
+
+//3 ciez0pfggxdljedzsbklq49f0
+// static inline point pointof(int x, int y)
+public static Object pointof(Object... arg) {
+UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x;
+UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 c1s4k85p1cdfn176o3uryeros
+// static inline pointf pointfof(double x, double y)
+public static __struct__<pointf> pointfof(double x, double y) {
+// WARNING!! STRUCT
+return pointfof_w_(x, y).copy();
+}
+private static __struct__<pointf> pointfof_w_(double x, double y) {
+ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", x);
+ r.setDouble("y", y);
+ return r;
+} finally {
+LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof");
+}
+}
+
+
+
+
+//3 7cufnfitrh935ew093mw0i4b7
+// static inline box boxof(int llx, int lly, int urx, int ury)
+public static Object boxof(Object... arg) {
+UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly;
+UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury;
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 1vvsta5i8of59frav6uymguav
+// static inline boxf boxfof(double llx, double lly, double urx, double ury)
+public static __struct__<boxf> boxfof(double llx, double lly, double urx, double ury) {
+// WARNING!! STRUCT
+return boxfof_w_(llx, lly, urx, ury).copy();
+}
+private static __struct__<boxf> boxfof_w_(double llx, double lly, double urx, double ury) {
+ENTERING("1vvsta5i8of59frav6uymguav","boxfof");
+try {
+ final __struct__<boxf> b = JUtils.from(boxf.class);
+ b.getStruct("LL").setDouble("x", llx);
+ b.getStruct("LL").setDouble("y", lly);
+ b.getStruct("UR").setDouble("x", urx);
+ b.getStruct("UR").setDouble("y", ury);
+ return b;
+} finally {
+LEAVING("1vvsta5i8of59frav6uymguav","boxfof");
+}
+}
+
+
+
+
+//3 1n5xl70wxuabyf97mclvilsm6
+// static inline point add_point(point p, point q)
+public static Object add_point(Object... arg) {
+UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x;
+UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 arrsbik9b5tnfcbzsm8gr2chx
+// static inline pointf add_pointf(pointf p, pointf q)
+public static __struct__<pointf> add_pointf(final __struct__<pointf> p, final __struct__<pointf> q) {
+// WARNING!! STRUCT
+return add_pointf_w_(p.copy(), q.copy()).copy();
+}
+private static __struct__<pointf> add_pointf_w_(final __struct__<pointf> p, final __struct__<pointf> q) {
+ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", p.getDouble("x") + q.getDouble("x"));
+ r.setDouble("y", p.getDouble("y") + q.getDouble("y"));
+ return r;
+} finally {
+LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+}
+}
+
+
+
+
+//3 ai2dprak5y6obdsflguh5qbd7
+// static inline point sub_point(point p, point q)
+public static Object sub_point(Object... arg) {
+UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 16f6pyogcv3j7n2p0n8giqqgh
+// static inline pointf sub_pointf(pointf p, pointf q)
+public static Object sub_pointf(Object... arg) {
+UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9k50jgrhc4f9824vf8ony74rw
+// static inline point mid_point(point p, point q)
+public static Object mid_point(Object... arg) {
+UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2;
+UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 59c4f7im0ftyowhnzzq2v9o1x
+// static inline pointf mid_pointf(pointf p, pointf q)
+public static Object mid_pointf(Object... arg) {
+UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.;
+UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 5r18p38gisvcx3zsvbb9saixx
+// static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+public static Object interpolate_pointf(Object... arg) {
+UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r;
+UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x);
+UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y);
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bxzrv2ghq04qk5cbyy68s4mol
+// static inline point exch_xy(point p)
+public static Object exch_xy(Object... arg) {
+UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9lt3e03tac6h6sydljrcws8fd
+// static inline pointf exch_xyf(pointf p)
+public static Object exch_xyf(Object... arg) {
+UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8l9qhieokthntzdorlu5zn29b
+// static inline box box_bb(box b0, box b1)
+public static Object box_bb(Object... arg) {
+UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 clws9h3bbjm0lw3hexf8nl4c4
+// static inline boxf boxf_bb(boxf b0, boxf b1)
+public static Object boxf_bb(Object... arg) {
+UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bit6ycxo1iqd2al92y8gkzlvb
+// static inline box box_intersect(box b0, box b1)
+public static Object box_intersect(Object... arg) {
+UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8gfybie7k6pgb3o1a6llgpwng
+// static inline boxf boxf_intersect(boxf b0, boxf b1)
+public static Object boxf_intersect(Object... arg) {
+UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 7z8j2quq65govaaejrz7b4cvb
+// static inline int box_overlap(box b0, box b1)
+public static Object box_overlap(Object... arg) {
+UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4z0suuut2acsay5m8mg9dqjdu
+// static inline int boxf_overlap(boxf b0, boxf b1)
+public static Object boxf_overlap(Object... arg) {
+UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 dd34swz5rmdgu3a2np2a4h1dy
+// static inline int box_contains(box b0, box b1)
+public static Object box_contains(Object... arg) {
+UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8laj1bspbu2i1cjd9upr7xt32
+// static inline int boxf_contains(boxf b0, boxf b1)
+public static Object boxf_contains(Object... arg) {
+UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4wf5swkz24xx51ja2dynbycu1
+// static inline pointf perp (pointf p)
+public static Object perp(Object... arg) {
+UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6dtlpzv4mvgzb9o0b252yweuv
+// static inline pointf scale (double c, pointf p)
+public static Object scale(Object... arg) {
+UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x;
+UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+//1 5kbimjtsi4ulxiyk2w1brj6py
+// static graph_t *G
+//private static Agraph_s G;
+//1 ca279jzn1n2k40bv7mz55ccx7
+// static node_t *Last_node
+//private static Agnode_s Last_node;
+//1 5t6dmo5pbc1wdmxtabavdwyb2
+// static char Cmark
+//private static char Cmark;
+
+
+//3 7ggrwt0f912kp1marrxdjq155
+// static void begin_component(void)
+public static void begin_component() {
+ENTERING("7ggrwt0f912kp1marrxdjq155","begin_component");
+try {
+ Z.z().Last_node_decomp = null;
+ GD_nlist(Z.z().G_decomp, null);
+} finally {
+LEAVING("7ggrwt0f912kp1marrxdjq155","begin_component");
+}
+}
+
+
+
+
+//3 7icc6b2pvnj6te1yndbel47gg
+// static void add_to_component(node_t * n)
+public static void add_to_component(Agnode_s n) {
+ENTERING("7icc6b2pvnj6te1yndbel47gg","add_to_component");
+try {
+ GD_n_nodes(Z.z().G_decomp, 1+GD_n_nodes(Z.z().G_decomp));
+ ND_mark(n, Z.z().Cmark);
+ if (Z.z().Last_node_decomp!=null) {
+ ND_prev(n, Z.z().Last_node_decomp);
+ ND_next(Z.z().Last_node_decomp, n);
+ } else {
+ ND_prev(n, null);
+ GD_nlist(Z.z().G_decomp, n);
+ }
+ Z.z().Last_node_decomp = n;
+ ND_next(n, null);
+} finally {
+LEAVING("7icc6b2pvnj6te1yndbel47gg","add_to_component");
+}
+}
+
+
+
+
+//3 5o8hxpr6ppi15pinuy79m7u04
+// static void end_component(void)
+public static void end_component() {
+ENTERING("5o8hxpr6ppi15pinuy79m7u04","end_component");
+try {
+ int i;
+ i = GD_comp(Z.z().G_decomp).size;
+ GD_comp(Z.z().G_decomp).size = 1+GD_comp(Z.z().G_decomp).size;
+ GD_comp(Z.z().G_decomp).reallocEmpty(GD_comp(Z.z().G_decomp).size, Agnode_s.class);
+ GD_comp(Z.z().G_decomp).setInList(i ,GD_nlist(Z.z().G_decomp));
+} finally {
+LEAVING("5o8hxpr6ppi15pinuy79m7u04","end_component");
+}
+}
+
+
+
+
+//3 c5u5lnfbu0pmlk6vsvyrdj8ep
+// static void search_component(graph_t * g, node_t * n)
+public static void search_component(Agraph_s g, Agnode_s n) {
+ENTERING("c5u5lnfbu0pmlk6vsvyrdj8ep","search_component");
+try {
+ int c, i;
+ __array_of_struct__ vec = __array_of_struct__.malloc(elist.class, 4);
+ Agnode_s other;
+ Agedge_s e;
+ add_to_component(n);
+ vec.plus(0).setStruct(ND_out(n));
+ vec.plus(1).setStruct(ND_in(n));
+ vec.plus(2).setStruct(ND_flat_out(n));
+ vec.plus(3).setStruct(ND_flat_in(n));
+ for (c = 0; c <= 3; c++) {
+ if (((ST_elist) vec.plus(c).getStruct()).listNotNull())
+ for (i = 0; (e = (Agedge_s) ((ST_elist) vec.plus(c).getStruct()).getFromList(i))!=null; i++) {
+ if (EQ(other = aghead(e), n))
+ other = agtail(e);
+ if ((ND_mark(other) != Z.z().Cmark) && (EQ(other, UF_find(other))))
+ search_component(g, other);
+ }
+ }
+} finally {
+LEAVING("c5u5lnfbu0pmlk6vsvyrdj8ep","search_component");
+}
+}
+
+
+
+
+//3 2t7r964kqtl5qrl7i57i22tqy
+// void decompose(graph_t * g, int pass)
+public static void decompose(Agraph_s g, int pass) {
+ENTERING("2t7r964kqtl5qrl7i57i22tqy","decompose");
+try {
+ Agraph_s subg;
+ Agnode_s n, v;
+ Z.z().G_decomp = g;
+ if (++Z.z().Cmark == 0)
+ Z.z().Cmark = 1;
+ GD_n_nodes(g, 0);
+ GD_comp(g).size = 0;
+ for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) {
+ v = n;
+ if ((pass > 0) && (subg = ND_clust(v))!=null)
+ v = (Agnode_s) GD_rankleader(subg).plus(ND_rank(v)).getPtr();
+ else if (v != UF_find(v))
+ continue;
+ if (ND_mark(v) != Z.z().Cmark) {
+ begin_component();
+ search_component(g, v);
+ end_component();
+ }
+ }
+} finally {
+LEAVING("2t7r964kqtl5qrl7i57i22tqy","decompose");
+}
+}
+
+
+}
diff --git a/src/gen/lib/dotgen/dotinit__c.java b/src/gen/lib/dotgen/dotinit__c.java
new file mode 100644
index 0000000..f6768c0
--- /dev/null
+++ b/src/gen/lib/dotgen/dotinit__c.java
@@ -0,0 +1,1281 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * Project Info: http://plantuml.com
+ *
+ * If you like this project or if you find it useful, you can support us at:
+ *
+ * http://plantuml.com/patreon (only 1$ per month!)
+ * http://plantuml.com/paypal
+ *
+ * This file is part of Smetana.
+ * Smetana is a partial translation of Graphviz/Dot sources from C to Java.
+ *
+ * (C) Copyright 2009-2017, Arnaud Roques
+ *
+ * This translation is distributed under the same Licence as the original C program:
+ *
+ *************************************************************************
+ * Copyright (c) 2011 AT&T Intellectual Property
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: See CVS logs. Details at http://www.graphviz.org/
+ *************************************************************************
+ *
+ * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
+ * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0]
+ *
+ * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES
+ * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ *
+ * You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package gen.lib.dotgen;
+import static gen.lib.cgraph.attr__c.agattr;
+import static gen.lib.cgraph.attr__c.agget;
+import static gen.lib.cgraph.edge__c.agfstout;
+import static gen.lib.cgraph.edge__c.aghead;
+import static gen.lib.cgraph.edge__c.agnxtout;
+import static gen.lib.cgraph.edge__c.agtail;
+import static gen.lib.cgraph.graph__c.agnnodes;
+import static gen.lib.cgraph.node__c.agfstnode;
+import static gen.lib.cgraph.node__c.agnxtnode;
+import static gen.lib.cgraph.obj__c.agraphof;
+import static gen.lib.cgraph.obj__c.agroot;
+import static gen.lib.cgraph.rec__c.agbindrec;
+import static gen.lib.cgraph.subg__c.agfstsubg;
+import static gen.lib.cgraph.subg__c.agnxtsubg;
+import static gen.lib.common.postproc__c.dotneato_postprocess;
+import static gen.lib.common.utils__c.common_init_edge;
+import static gen.lib.common.utils__c.common_init_node;
+import static gen.lib.common.utils__c.gv_nodesize;
+import static gen.lib.common.utils__c.late_int;
+import static gen.lib.common.utils__c.late_string;
+import static gen.lib.common.utils__c.mapbool;
+import static gen.lib.common.utils__c.setEdgeType;
+import static gen.lib.dotgen.aspect__c.setAspect;
+import static gen.lib.dotgen.class1__c.nonconstraint_edge;
+import static gen.lib.dotgen.compound__c.dot_compoundEdges;
+import static gen.lib.dotgen.dotsplines__c.dot_splines;
+import static gen.lib.dotgen.mincross__c.dot_mincross;
+import static gen.lib.dotgen.position__c.dot_position;
+import static gen.lib.dotgen.rank__c.dot_rank;
+import static gen.lib.dotgen.sameport__c.dot_sameports;
+import static gen.lib.pack.pack__c.getPack;
+import static gen.lib.pack.pack__c.getPackInfo;
+import static gen.lib.pack.pack__c.getPackModeInfo;
+import static smetana.core.JUtils.EQ;
+import static smetana.core.JUtils.NEQ;
+import static smetana.core.JUtils.enumAsInt;
+import static smetana.core.JUtils.sizeof;
+import static smetana.core.JUtilsDebug.ENTERING;
+import static smetana.core.JUtilsDebug.LEAVING;
+import static smetana.core.Macro.AGRAPH;
+import static smetana.core.Macro.ED_count;
+import static smetana.core.Macro.ED_minlen;
+import static smetana.core.Macro.ED_showboxes;
+import static smetana.core.Macro.ED_weight;
+import static smetana.core.Macro.ED_xpenalty;
+import static smetana.core.Macro.GD_dotroot;
+import static smetana.core.Macro.GD_flags;
+import static smetana.core.Macro.GD_flip;
+import static smetana.core.Macro.N;
+import static smetana.core.Macro.ND_UF_size;
+import static smetana.core.Macro.ND_flat_in;
+import static smetana.core.Macro.ND_flat_out;
+import static smetana.core.Macro.ND_in;
+import static smetana.core.Macro.ND_other;
+import static smetana.core.Macro.ND_out;
+import static smetana.core.Macro.UNSUPPORTED;
+import static smetana.core.Macro.alloc_elist;
+import h.Agedge_s;
+import h.Agedgeinfo_t;
+import h.Agnode_s;
+import h.Agnodeinfo_t;
+import h.Agraph_s;
+import h.Agraphinfo_t;
+import h.aspect_t;
+import h.boxf;
+import h.pack_info;
+import h.pack_mode;
+import h.pointf;
+import smetana.core.CString;
+import smetana.core.JUtils;
+import smetana.core.Memory;
+import smetana.core.Z;
+import smetana.core.__ptr__;
+import smetana.core.__struct__;
+
+public class dotinit__c {
+//1 2digov3edok6d5srhgtlmrycs
+// extern lt_symlist_t lt_preloaded_symbols[]
+
+
+//1 baedz5i9est5csw3epz3cv7z
+// typedef Ppoly_t Ppolyline_t
+
+
+//1 9k44uhd5foylaeoekf3llonjq
+// extern Dtmethod_t* Dtset
+
+
+//1 1ahfywsmzcpcig2oxm7pt9ihj
+// extern Dtmethod_t* Dtbag
+
+
+//1 anhghfj3k7dmkudy2n7rvt31v
+// extern Dtmethod_t* Dtoset
+
+
+//1 5l6oj1ux946zjwvir94ykejbc
+// extern Dtmethod_t* Dtobag
+
+
+//1 2wtf222ak6cui8cfjnw6w377z
+// extern Dtmethod_t* Dtlist
+
+
+//1 d1s1s6ibtcsmst88e3057u9r7
+// extern Dtmethod_t* Dtstack
+
+
+//1 axa7mflo824p6fspjn1rdk0mt
+// extern Dtmethod_t* Dtqueue
+
+
+//1 ega812utobm4xx9oa9w9ayij6
+// extern Dtmethod_t* Dtdeque
+
+
+//1 cyfr996ur43045jv1tjbelzmj
+// extern Dtmethod_t* Dtorder
+
+
+//1 wlofoiftbjgrrabzb2brkycg
+// extern Dtmethod_t* Dttree
+
+
+//1 12bds94t7voj7ulwpcvgf6agr
+// extern Dtmethod_t* Dthash
+
+
+//1 9lqknzty480cy7zsubmabkk8h
+// extern Dtmethod_t _Dttree
+
+
+//1 bvn6zkbcp8vjdhkccqo1xrkrb
+// extern Dtmethod_t _Dthash
+
+
+//1 9lidhtd6nsmmv3e7vjv9e10gw
+// extern Dtmethod_t _Dtlist
+
+
+//1 34ujfamjxo7xn89u90oh2k6f8
+// extern Dtmethod_t _Dtqueue
+
+
+//1 3jy4aceckzkdv950h89p4wjc8
+// extern Dtmethod_t _Dtstack
+
+
+//1 8dfqgf3u1v830qzcjqh9o8ha7
+// extern Agmemdisc_t AgMemDisc
+
+
+//1 18k2oh2t6llfsdc5x0wlcnby8
+// extern Agiddisc_t AgIdDisc
+
+
+//1 a4r7hi80gdxtsv4hdoqpyiivn
+// extern Agiodisc_t AgIoDisc
+
+
+//1 bnzt5syjb7mgeru19114vd6xx
+// extern Agdisc_t AgDefaultDisc
+
+
+//1 35y2gbegsdjilegaribes00mg
+// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected
+
+
+//1 c2rygslq6bcuka3awmvy2b3ow
+// typedef Agsubnode_t Agnoderef_t
+
+
+//1 xam6yv0dcsx57dtg44igpbzn
+// typedef Dtlink_t Agedgeref_t
+
+
+//1 nye6dsi1twkbddwo9iffca1j
+// extern char *Version
+
+
+//1 65mu6k7h7lb7bx14jpiw7iyxr
+// extern char **Files
+
+
+//1 2rpjdzsdyrvomf00zcs3u3dyn
+// extern const char **Lib
+
+
+//1 6d2f111lntd2rsdt4gswh5909
+// extern char *CmdName
+
+
+//1 a0ltq04fpeg83soa05a2fkwb2
+// extern char *specificFlags
+
+
+//1 1uv30qeqq2jh6uznlr4dziv0y
+// extern char *specificItems
+
+
+//1 7i4hkvngxe3x7lmg5h6b3t9g3
+// extern char *Gvfilepath
+
+
+//1 9jp96pa73kseya3w6sulxzok6
+// extern char *Gvimagepath
+
+
+//1 40ylumfu7mrvawwf4v2asvtwk
+// extern unsigned char Verbose
+
+
+//1 93st8awjy1z0h07n28qycbaka
+// extern unsigned char Reduce
+
+
+//1 f2vs67ts992erf8onwfglurzp
+// extern int MemTest
+
+
+//1 c6f8whijgjwwagjigmxlwz3gb
+// extern char *HTTPServerEnVar
+
+
+//1 cp4hzj7p87m7arw776d3bt7aj
+// extern char *Output_file_name
+
+
+//1 a3rqagofsgraie6mx0krzkgsy
+// extern int graphviz_errors
+
+
+//1 5up05203r4kxvjn1m4njcgq5x
+// extern int Nop
+
+
+//1 umig46cco431x14b3kosde2t
+// extern double PSinputscale
+
+
+//1 52bj6v8fqz39khasobljfukk9
+// extern int Syntax_errors
+
+
+//1 9ekf2ina8fsjj6y6i0an6somj
+// extern int Show_cnt
+
+
+//1 38di5qi3nkxkq65onyvconk3r
+// extern char** Show_boxes
+
+
+//1 6ri6iu712m8mpc7t2670etpcw
+// extern int CL_type
+
+
+//1 bomxiw3gy0cgd1ydqtek7fpxr
+// extern unsigned char Concentrate
+
+
+//1 cqy3gqgcq8empdrbnrhn84058
+// extern double Epsilon
+
+
+//1 64slegfoouqeg0rmbyjrm8wgr
+// extern int MaxIter
+
+
+//1 88wdinpnmfs4mab4aw62yb0bg
+// extern int Ndim
+
+
+//1 8bbad3ogcelqnnvo5br5s05gq
+// extern int State
+
+
+//1 17rnd8q45zclfn68qqst2vxxn
+// extern int EdgeLabelsDone
+
+
+//1 ymx1z4s8cznjifl2d9f9m8jr
+// extern double Initial_dist
+
+
+//1 a33bgl0c3uqb3trx419qulj1x
+// extern double Damping
+
+
+//1 d9lvrpjg1r0ojv40pod1xwk8n
+// extern int Y_invert
+
+
+//1 71efkfs77q5tq9ex6y0f4kanh
+// extern int GvExitOnUsage
+
+
+//1 4xy2dkdkv0acs2ue9eca8hh2e
+// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin
+
+
+//1 9js5gxgzr74eakgtfhnbws3t9
+// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle
+
+
+//1 anqllp9sj7wo45w6bm11j8trn
+// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth
+
+
+//1 bh0z9puipqw7gymjd5h5b8s6i
+// extern struct fdpParms_s* fdp_parms
+
+
+
+
+//3 ciez0pfggxdljedzsbklq49f0
+// static inline point pointof(int x, int y)
+public static Object pointof(Object... arg) {
+UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x;
+UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 c1s4k85p1cdfn176o3uryeros
+// static inline pointf pointfof(double x, double y)
+public static __struct__<pointf> pointfof(double x, double y) {
+// WARNING!! STRUCT
+return pointfof_w_(x, y).copy();
+}
+private static __struct__<pointf> pointfof_w_(double x, double y) {
+ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", x);
+ r.setDouble("y", y);
+ return r;
+} finally {
+LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof");
+}
+}
+
+
+
+
+//3 7cufnfitrh935ew093mw0i4b7
+// static inline box boxof(int llx, int lly, int urx, int ury)
+public static Object boxof(Object... arg) {
+UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly;
+UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury;
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 1vvsta5i8of59frav6uymguav
+// static inline boxf boxfof(double llx, double lly, double urx, double ury)
+public static __struct__<boxf> boxfof(double llx, double lly, double urx, double ury) {
+// WARNING!! STRUCT
+return boxfof_w_(llx, lly, urx, ury).copy();
+}
+private static __struct__<boxf> boxfof_w_(double llx, double lly, double urx, double ury) {
+ENTERING("1vvsta5i8of59frav6uymguav","boxfof");
+try {
+ final __struct__<boxf> b = JUtils.from(boxf.class);
+ b.getStruct("LL").setDouble("x", llx);
+ b.getStruct("LL").setDouble("y", lly);
+ b.getStruct("UR").setDouble("x", urx);
+ b.getStruct("UR").setDouble("y", ury);
+ return b;
+} finally {
+LEAVING("1vvsta5i8of59frav6uymguav","boxfof");
+}
+}
+
+
+
+
+//3 1n5xl70wxuabyf97mclvilsm6
+// static inline point add_point(point p, point q)
+public static Object add_point(Object... arg) {
+UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x;
+UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 arrsbik9b5tnfcbzsm8gr2chx
+// static inline pointf add_pointf(pointf p, pointf q)
+public static __struct__<pointf> add_pointf(final __struct__<pointf> p, final __struct__<pointf> q) {
+// WARNING!! STRUCT
+return add_pointf_w_(p.copy(), q.copy()).copy();
+}
+private static __struct__<pointf> add_pointf_w_(final __struct__<pointf> p, final __struct__<pointf> q) {
+ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", p.getDouble("x") + q.getDouble("x"));
+ r.setDouble("y", p.getDouble("y") + q.getDouble("y"));
+ return r;
+} finally {
+LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+}
+}
+
+
+
+
+//3 ai2dprak5y6obdsflguh5qbd7
+// static inline point sub_point(point p, point q)
+public static Object sub_point(Object... arg) {
+UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 16f6pyogcv3j7n2p0n8giqqgh
+// static inline pointf sub_pointf(pointf p, pointf q)
+public static Object sub_pointf(Object... arg) {
+UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9k50jgrhc4f9824vf8ony74rw
+// static inline point mid_point(point p, point q)
+public static Object mid_point(Object... arg) {
+UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2;
+UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 59c4f7im0ftyowhnzzq2v9o1x
+// static inline pointf mid_pointf(pointf p, pointf q)
+public static Object mid_pointf(Object... arg) {
+UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.;
+UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 5r18p38gisvcx3zsvbb9saixx
+// static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+public static Object interpolate_pointf(Object... arg) {
+UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r;
+UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x);
+UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y);
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bxzrv2ghq04qk5cbyy68s4mol
+// static inline point exch_xy(point p)
+public static Object exch_xy(Object... arg) {
+UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9lt3e03tac6h6sydljrcws8fd
+// static inline pointf exch_xyf(pointf p)
+public static Object exch_xyf(Object... arg) {
+UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8l9qhieokthntzdorlu5zn29b
+// static inline box box_bb(box b0, box b1)
+public static Object box_bb(Object... arg) {
+UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 clws9h3bbjm0lw3hexf8nl4c4
+// static inline boxf boxf_bb(boxf b0, boxf b1)
+public static Object boxf_bb(Object... arg) {
+UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bit6ycxo1iqd2al92y8gkzlvb
+// static inline box box_intersect(box b0, box b1)
+public static Object box_intersect(Object... arg) {
+UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8gfybie7k6pgb3o1a6llgpwng
+// static inline boxf boxf_intersect(boxf b0, boxf b1)
+public static Object boxf_intersect(Object... arg) {
+UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 7z8j2quq65govaaejrz7b4cvb
+// static inline int box_overlap(box b0, box b1)
+public static Object box_overlap(Object... arg) {
+UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4z0suuut2acsay5m8mg9dqjdu
+// static inline int boxf_overlap(boxf b0, boxf b1)
+public static Object boxf_overlap(Object... arg) {
+UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 dd34swz5rmdgu3a2np2a4h1dy
+// static inline int box_contains(box b0, box b1)
+public static Object box_contains(Object... arg) {
+UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8laj1bspbu2i1cjd9upr7xt32
+// static inline int boxf_contains(boxf b0, boxf b1)
+public static Object boxf_contains(Object... arg) {
+UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4wf5swkz24xx51ja2dynbycu1
+// static inline pointf perp (pointf p)
+public static Object perp(Object... arg) {
+UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6dtlpzv4mvgzb9o0b252yweuv
+// static inline pointf scale (double c, pointf p)
+public static Object scale(Object... arg) {
+UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x;
+UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+//1 exy2l03ceq9zw4vf01bbd4d3o
+// typedef unsigned int packval_t
+
+
+
+
+//3 cmr94z4p2bdeiply1d4wrqwes
+// static void dot_init_subg(graph_t * g, graph_t* droot)
+public static void dot_init_subg(Agraph_s g, Agraph_s droot) {
+ENTERING("cmr94z4p2bdeiply1d4wrqwes","dot_init_subg");
+try {
+ Agraph_s subg;
+ if (NEQ(g, agroot(g)))
+ agbindrec(g, new CString("Agraphinfo_t"), sizeof(Agraphinfo_t.class), (N(0)));
+ if (EQ(g, droot))
+ GD_dotroot(agroot(g), droot);
+ for (subg = agfstsubg(g); subg!=null; subg = agnxtsubg(subg)) {
+ dot_init_subg(subg, droot);
+ }
+} finally {
+LEAVING("cmr94z4p2bdeiply1d4wrqwes","dot_init_subg");
+}
+}
+
+
+
+
+//3 3hk92jbrfjmn6no3svn9jvje9
+// static void dot_init_node(node_t * n)
+public static void dot_init_node(Agnode_s n) {
+ENTERING("3hk92jbrfjmn6no3svn9jvje9","dot_init_node");
+try {
+ agbindrec(n, new CString("Agnodeinfo_t"), sizeof(Agnodeinfo_t.class), (N(0))); //graph custom data
+ common_init_node(n);
+ gv_nodesize(n, GD_flip(agraphof(n)));
+ alloc_elist(4, ND_in(n), Agnode_s.class);
+ alloc_elist(4, ND_out(n), Agnode_s.class);
+ alloc_elist(2, ND_flat_in(n), Agnode_s.class);
+ alloc_elist(2, ND_flat_out(n), Agnode_s.class);
+ alloc_elist(2, ND_other(n), Agnode_s.class);
+ ND_UF_size(n, 1);
+} finally {
+LEAVING("3hk92jbrfjmn6no3svn9jvje9","dot_init_node");
+}
+}
+
+
+
+
+//3 zbvhnhd78bppq8wb872847bj
+// static void dot_init_edge(edge_t * e)
+public static void dot_init_edge(Agedge_s e) {
+ENTERING("zbvhnhd78bppq8wb872847bj","dot_init_edge");
+try {
+ CString tailgroup, headgroup;
+ agbindrec(e, new CString("Agedgeinfo_t"), sizeof(Agedgeinfo_t.class), (N(0))); //graph custom data
+ common_init_edge(e);
+ ED_weight(e, late_int(e, Z.z().E_weight, 1, 0));
+ tailgroup = late_string(agtail(e), Z.z().N_group, new CString(""));
+ headgroup = late_string(aghead(e), Z.z().N_group, new CString(""));
+ ED_count(e, 1);
+ ED_xpenalty(e, 1);
+ if (tailgroup.charAt(0)!='\0' && (tailgroup.isSame(headgroup))) {
+UNSUPPORTED("atjraranegsdjegclykesn5gx"); // (((Agedgeinfo_t*)(((Agobj_t*)(e))->data))->xpenalty) = 1000;
+UNSUPPORTED("5y0yunmvmngg67c9exlbn6jbk"); // (((Agedgeinfo_t*)(((Agobj_t*)(e))->data))->weight) *= 100;
+ }
+ if (nonconstraint_edge(e)) {
+UNSUPPORTED("54niz21n2omf1i9v67brdid9w"); // (((Agedgeinfo_t*)(((Agobj_t*)(e))->data))->xpenalty) = 0;
+UNSUPPORTED("2v5u5jdguhhn7vjihniotrml0"); // (((Agedgeinfo_t*)(((Agobj_t*)(e))->data))->weight) = 0;
+ }
+ ED_showboxes(e, late_int(e, Z.z().E_showboxes, 0, 0));
+ ED_minlen(e, late_int(e, Z.z().E_minlen, 1, 0));
+} finally {
+LEAVING("zbvhnhd78bppq8wb872847bj","dot_init_edge");
+}
+}
+
+
+
+
+//3 2ylyhz7macit0ts1hap2tg3wy
+// void dot_init_node_edge(graph_t * g)
+public static void dot_init_node_edge(Agraph_s g) {
+ENTERING("2ylyhz7macit0ts1hap2tg3wy","dot_init_node_edge");
+try {
+ Agnode_s n;
+ Agedge_s e;
+ for (n = agfstnode(g); n!=null; n = agnxtnode(g, n))
+ dot_init_node(n);
+ for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) {
+ for (e = agfstout(g, n); e!=null; e = agnxtout(g, e))
+ dot_init_edge(e);
+ }
+} finally {
+LEAVING("2ylyhz7macit0ts1hap2tg3wy","dot_init_node_edge");
+}
+}
+
+
+
+
+//3 5z1h7gr0tgapjvuc2z9st9xjr
+// static void dot_cleanup_node(node_t * n)
+public static Object dot_cleanup_node(Object... arg) {
+UNSUPPORTED("59dl3yc4jbcy2pb7j1njhlybi"); // static void
+UNSUPPORTED("3wd33alc21mdt92sw3x9gl65j"); // dot_cleanup_node(node_t * n)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("bft238x0kn16j4rew2s49lf8p"); // free_list(ND_in(n));
+UNSUPPORTED("9k0f5njfz83ho3jgj8a6l97ia"); // free_list(ND_out(n));
+UNSUPPORTED("9hf5u4ow9x2bxsh5roh3klohe"); // free_list(ND_flat_out(n));
+UNSUPPORTED("d5cejyb0j1nhixps76lgii0fr"); // free_list(ND_flat_in(n));
+UNSUPPORTED("er7qgmylfnw39xn97jixe3cqp"); // free_list(ND_other(n));
+UNSUPPORTED("dv63sk5dujcwfkf99o6ponzqm"); // free_label(ND_label(n));
+UNSUPPORTED("5or6zu6ycx4zage9ggy1o9it4"); // free_label(ND_xlabel(n));
+UNSUPPORTED("4wkmsp7365vb7u5fqtm2buotu"); // if (ND_shape(n))
+UNSUPPORTED("2yujce4phniaiwg4fq8up6xu7"); // ND_shape(n)->fns->freefn(n);
+UNSUPPORTED("4zk1aro1ispxkab9ee4dd0tf"); // agdelrec(n, "Agnodeinfo_t");
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 5x42drpgjuyzb9oapi7osqxb6
+// static void free_virtual_edge_list(node_t * n)
+public static Object free_virtual_edge_list(Object... arg) {
+UNSUPPORTED("2kwoaiz0pcpatrbztzebypz24"); // static void free_virtual_edge_list(node_t * n)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e;
+UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i;
+UNSUPPORTED("4johvk6fhfn8nimnwv1bayucm"); // for (i = ND_in(n).size - 1; i >= 0; i--) {
+UNSUPPORTED("dkwp8r3x5yxwt373copif99qc"); // e = ND_in(n).list[i];
+UNSUPPORTED("d0cytt2j3orasq0977h5sdypp"); // delete_fast_edge(e);
+UNSUPPORTED("3ersod3eshpdnzwy1yb73olpy"); // free(e->base.data);
+UNSUPPORTED("7eb6ytlppce1o1ihl2yf1mb6w"); // free(e);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("dyyfpe9giifeythxw1ecgc9gw"); // for (i = ND_out(n).size - 1; i >= 0; i--) {
+UNSUPPORTED("d0wu190s7vunqmaadd9r01j7m"); // e = ND_out(n).list[i];
+UNSUPPORTED("d0cytt2j3orasq0977h5sdypp"); // delete_fast_edge(e);
+UNSUPPORTED("3ersod3eshpdnzwy1yb73olpy"); // free(e->base.data);
+UNSUPPORTED("7eb6ytlppce1o1ihl2yf1mb6w"); // free(e);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bzy6cpyjjzfeesjlq49c5sfmo
+// static void free_virtual_node_list(node_t * vn)
+public static Object free_virtual_node_list(Object... arg) {
+UNSUPPORTED("b8mii2q777xhhq7ugpswc15so"); // static void free_virtual_node_list(node_t * vn)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("3lk7715piw6ktz28izcuw3l10"); // node_t *next_vn;
+UNSUPPORTED("cs50uo5tdqm5ri532weezud0q"); // while (vn) {
+UNSUPPORTED("1zc0twfsq0pvs72obqpqn3jt7"); // next_vn = ND_next(vn);
+UNSUPPORTED("6v1txca0lc0m7vffh6cxe7s0v"); // free_virtual_edge_list(vn);
+UNSUPPORTED("ar8qtrvshtnclyd1lwsud1fe1"); // if (ND_node_type(vn) == 1) {
+UNSUPPORTED("52z735rh4jv9he0idjly61jel"); // free_list(ND_out(vn));
+UNSUPPORTED("2cx91nqjcw6sdd1j219nb29ty"); // free_list(ND_in(vn));
+UNSUPPORTED("f2pq0qi224q8wspagt6qwoxdp"); // free(vn->base.data);
+UNSUPPORTED("3lo6egckclz8tk579663nqark"); // free(vn);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("1jra8cgf1nhojwmj7gyucvoni"); // vn = next_vn;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 colq6urkwrm9hh0zggl873dla
+// static void dot_cleanup_graph(graph_t * g)
+public static Object dot_cleanup_graph(Object... arg) {
+UNSUPPORTED("59dl3yc4jbcy2pb7j1njhlybi"); // static void
+UNSUPPORTED("84r7i6e9lays55x1yan1d0nlp"); // dot_cleanup_graph(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i;
+UNSUPPORTED("8uujemixuhlf040icq3zsh7j8"); // graph_t *subg;
+UNSUPPORTED("92vjk6rjnnnji7bcczz51lwfx"); // for (subg = agfstsubg(g); subg; subg = agnxtsubg(subg)) {
+UNSUPPORTED("ykczo4avgse9arffpd1plmme"); // dot_cleanup_graph(subg);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("12nbb17pw6fg2wwg5c7i800xv"); // if (GD_clust(g)) free (GD_clust(g));
+UNSUPPORTED("cw69q4tfzxmrd72fi1vz2be1g"); // if (GD_rankleader(g)) free (GD_rankleader(g));
+UNSUPPORTED("cnrd9322z9c4eqvr450ughbzh"); // free_list(GD_comp(g));
+UNSUPPORTED("djox731ykith2qz2trtp7zgzf"); // if (GD_rank(g)) {
+UNSUPPORTED("1vkvarx8mfy1iq12oyq5rtzpa"); // for (i = GD_minrank(g); i <= GD_maxrank(g); i++)
+UNSUPPORTED("32lqmila03wshgx9x3686apbo"); // free(GD_rank(g)[i].av);
+UNSUPPORTED("dnv6plmiyr74l3u1aqc16qmiz"); // if (GD_minrank(g) == -1)
+UNSUPPORTED("b0hpil9jwq1zov1klvpd6vbnf"); // free(GD_rank(g)-1);
+UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else
+UNSUPPORTED("eqir7eaetsm1anqchd3kb8q8t"); // free(GD_rank(g));
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("58o9b8zmlqcq96deeorllidce"); // if (g != agroot(g))
+UNSUPPORTED("f5hqyohefj8o12bvcv17xpswc"); // agdelrec(g,"Agraphinfo_t");
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 2uv40x0vx6nmbvld01reukyly
+// void dot_cleanup(graph_t * g)
+public static Object dot_cleanup(Object... arg) {
+UNSUPPORTED("a2tqiktifcbodk46i6x0ux9j1"); // void dot_cleanup(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n;
+UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e;
+UNSUPPORTED("v8twirr9ihzxnb06d6x6nxrd"); // free_virtual_node_list(GD_nlist(g));
+UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
+UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) {
+UNSUPPORTED("5otoqd7o1zz8ni50urywr7yjy"); // gv_cleanup_edge(e);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("yis08tp9td0x00hxoxqopt6b"); // dot_cleanup_node(n);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("2w88m44roqcqg67kuhg5k4agu"); // dot_cleanup_graph(g);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4jt1p8taqjuk4atqpwbxkru3g
+// static void remove_from_rank (Agraph_t * g, Agnode_t* n)
+public static Object remove_from_rank(Object... arg) {
+UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void
+UNSUPPORTED("9axg5z61bd5rkf0cbubkto6eb"); // remove_from_rank (Agraph_t * g, Agnode_t* n)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("5v9scbkty9fkcyo8yw7jmkokj"); // Agnode_t* v = NULL;
+UNSUPPORTED("86gmm9qxyhkzst815hr54r1sp"); // int j, rk = ND_rank(n);
+UNSUPPORTED("7bstlpzg93apc08cfgp386p7m"); // for (j = 0; j < GD_rank(g)[rk].n; j++) {
+UNSUPPORTED("5oq2646mpw8p4gen80z8g8baz"); // v = GD_rank(g)[rk].v[j];
+UNSUPPORTED("aby82dr89m0xbcj8mya7f9fvx"); // if (v == n) {
+UNSUPPORTED("5494ozi7uqin7n7xlbkqrsahd"); // for (j++; j < GD_rank(g)[rk].n; j++) {
+UNSUPPORTED("a4l7560unq1yw14pck0v0yo6x"); // GD_rank(g)[rk].v[j-1] = GD_rank(g)[rk].v[j];
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("8pdkxsqmvoce243jar5hwxl3u"); // GD_rank(g)[rk].n--;
+UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("cytanc5i1hmu0ag0vz4awfpi"); // assert (v == n); /* if found */
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 xgvyh3kinj6cbnknb5oo9qfr
+// static void removeFill (Agraph_t * g)
+public static Object removeFill(Object... arg) {
+UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void
+UNSUPPORTED("8asq16rjvm285smlce6dul5nq"); // removeFill (Agraph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("ci2zh69w6nhi0q816i1ixuy9k"); // Agnode_t* n;
+UNSUPPORTED("167at4ws3rrdv3znbvpsnb83o"); // Agnode_t* nxt;
+UNSUPPORTED("22j86kdb5hbziiedfsspj3ipn"); // Agraph_t* sg = agsubg (g, "_new_rank", 0);
+UNSUPPORTED("1pjx7ke9o4h5tgq0cs9jfui7j"); // if (!sg) return;
+UNSUPPORTED("5sms8ok354044bziyaq1kfv93"); // for (n = agfstnode(sg); n; n = nxt) {
+UNSUPPORTED("18crodqmo1f1apt7bwq0mv72m"); // nxt = agnxtnode(sg, n);
+UNSUPPORTED("227ays2g6u04e210i8wp3jntu"); // delete_fast_node (g, n);
+UNSUPPORTED("2tp9t78wzq032fbm3msk2gpfx"); // remove_from_rank (g, n);
+UNSUPPORTED("cyyixtb6lqfain86edffcd92b"); // dot_cleanup_node (n);
+UNSUPPORTED("3xjgsp211uvaug1aa3mvpdlnc"); // agdelnode(g, n);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("9ar3yxaq5s0lagg5bw59suv8u"); // agdelsubg (g, sg);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 63o8ieaetc5apjocrd74fobt0
+// static void attach_phase_attrs (Agraph_t * g, int maxphase)
+public static Object attach_phase_attrs(Object... arg) {
+UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void
+UNSUPPORTED("adogsvx2s8kkwixbfl53zj175"); // attach_phase_attrs (Agraph_t * g, int maxphase)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("28snkvv05tay2b94o220j0rkx"); // Agsym_t* rk = agattr(g,AGNODE,"rank","");
+UNSUPPORTED("2mf6hpet62ccb0nfggxptz459"); // Agsym_t* order = agattr(g,AGNODE,"order","");
+UNSUPPORTED("ci2zh69w6nhi0q816i1ixuy9k"); // Agnode_t* n;
+UNSUPPORTED("cf8w5z35zxww7q6yjin9lc9op"); // char buf[BUFSIZ];
+UNSUPPORTED("7wq24g054kmx3aw25vk5ksj4"); // for (n = agfstnode(g); n; n = agnxtnode(g,n)) {
+UNSUPPORTED("16p5t5iyomfedg6du3xoszhzq"); // if (maxphase >= 1) {
+UNSUPPORTED("bwgz5xhm64nl5wtnj9vfs1rx7"); // sprintf(buf, "%d", ND_rank(n));
+UNSUPPORTED("42xwkqdgcponmubqyxg876oo6"); // agxset(n,rk,buf);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("93x84236b3xx5glpnx5xseeg0"); // if (maxphase >= 2) {
+UNSUPPORTED("dt1ra0nrgwwdbm8fmxvgcz16x"); // sprintf(buf, "%d", ND_order(n));
+UNSUPPORTED("5e6vrutroh3qimffd0rioyhnz"); // agxset(n,order,buf);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 7t18nggek2s9vvb5opwqa8rwr
+// static void dotLayout(Agraph_t * g)
+public static void dotLayout(Agraph_s g) {
+ENTERING("7t18nggek2s9vvb5opwqa8rwr","dotLayout");
+try {
+ aspect_t aspect = (aspect_t) Memory.malloc(aspect_t.class);
+ aspect_t asp;
+ int maxphase = late_int(g, (agattr(g,AGRAPH,new CString("phase"),null)), -1, 1);
+ setEdgeType (g, (5 << 1));
+ asp = setAspect (g, aspect);
+ dot_init_subg(g,g);
+ dot_init_node_edge(g);
+ do {
+ dot_rank(g, asp);
+ if (maxphase == 1) {
+ attach_phase_attrs (g, 1);
+ return;
+ }
+ if (aspect.getBoolean("badGraph")) {
+UNSUPPORTED("1yu5j8tk43i6jlmu8wk9jks15"); // agerr(AGWARN, "dot does not support the aspect attribute for disconnected graphs or graphs with clusters\n");
+UNSUPPORTED("5uwp9z6jkv5uc30iyfszyg6dw"); // asp = NULL;
+UNSUPPORTED("28kbszyxsjoj03gb134ov4hag"); // aspect.nextIter = 0;
+ }
+ dot_mincross(g, (asp != null));
+ if (maxphase == 2) {
+ attach_phase_attrs (g, 2);
+ return;
+ }
+ dot_position(g, asp);
+ if (maxphase == 3) {
+ attach_phase_attrs (g, 2); /* positions will be attached on output */
+ return;
+ }
+ aspect.setInt("nPasses", aspect.getInt("nPasses") -1);
+ } while (aspect.getInt("nextIter")!=0 && aspect.getInt("nPasses")!=0);
+ if ((GD_flags(g) & (1 << 4))!=0)
+ removeFill (g);
+ dot_sameports(g);
+ dot_splines(g);
+ if (mapbool(agget(g, new CString("compound"))))
+ dot_compoundEdges(g);
+} finally {
+LEAVING("7t18nggek2s9vvb5opwqa8rwr","dotLayout");
+}
+}
+
+
+
+
+//3 j18uqz16uc5895o8w92sc8us
+// static void initSubg (Agraph_t* sg, Agraph_t* g)
+public static Object initSubg(Object... arg) {
+UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void
+UNSUPPORTED("dxv1kymai2xe3m4wblwapgffu"); // initSubg (Agraph_t* sg, Agraph_t* g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("3oolj8gqkndhoy95ebyjmjt0w"); // agbindrec(sg, "Agraphinfo_t", sizeof(Agraphinfo_t), NOT(0));
+UNSUPPORTED("2um641xaifqq107czm0htblc3"); // GD_drawing(sg) = (layout_t*)zmalloc(sizeof(layout_t));
+UNSUPPORTED("bfocldqmll6ddnmq3h3ci6njt"); // GD_drawing(sg)->quantum = GD_drawing(g)->quantum;
+UNSUPPORTED("7cnwfvm4lswn7kvucss74krd3"); // GD_drawing(sg)->dpi = GD_drawing(g)->dpi;
+UNSUPPORTED("7kbbs52ycpyuytqi61m5vme4c"); // GD_gvc(sg) = GD_gvc (g);
+UNSUPPORTED("8flpf5avt4eg89sc16bgp9v13"); // GD_charset(sg) = GD_charset (g);
+UNSUPPORTED("d9o7bxs9hl0r5ma0lt9oejmqv"); // GD_rankdir2(sg) = GD_rankdir2 (g);
+UNSUPPORTED("74762qecxnstp743fwt31hk0p"); // GD_nodesep(sg) = GD_nodesep(g);
+UNSUPPORTED("b29jhl6zjh8f8jqfb6okoixby"); // GD_ranksep(sg) = GD_ranksep(g);
+UNSUPPORTED("bctcse1zj9vx2p0in9p4jhso3"); // GD_fontnames(sg) = GD_fontnames(g);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9pe0e6i01ks2zju1xjzgg39v1
+// static void attachPos (Agraph_t* g)
+public static Object attachPos(Object... arg) {
+UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void
+UNSUPPORTED("d606brtp0hf4k8bamafqhu08b"); // attachPos (Agraph_t* g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("8fmu9hadea4uw8fwzoexoxab"); // node_t* np;
+UNSUPPORTED("5cl2cj5wj7w1zr7qjww0s4cdf"); // double* ps = (double*)zmalloc((2*agnnodes(g))*sizeof(double));
+UNSUPPORTED("73rfwkv8ws65l7qgnz7jw27gf"); // for (np = agfstnode(g); np; np = agnxtnode(g, np)) {
+UNSUPPORTED("7tbl6es7oks3vntqoetg24xa4"); // ND_pos(np) = ps;
+UNSUPPORTED("9qwq8ll4gb28hun94xos9i4ud"); // ps[0] = ((ND_coord(np).x)/(double)72);
+UNSUPPORTED("5z9ztec30pze3mzecneza61qq"); // ps[1] = ((ND_coord(np).y)/(double)72);
+UNSUPPORTED("aeuy5zibx9et1ncwcqwlr3s3m"); // ps += 2;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 eufhyu2dccn1mleg8a43s9k2h
+// static void resetCoord (Agraph_t* g)
+public static Object resetCoord(Object... arg) {
+UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void
+UNSUPPORTED("caofcucw710wwaiwfz4650zsz"); // resetCoord (Agraph_t* g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7ds7ppzwt5kjihc3hp8q0ncyl"); // node_t* np = agfstnode(g);
+UNSUPPORTED("5s8nx20pwknmsow15z16muyab"); // double* sp = ND_pos(np);
+UNSUPPORTED("5u1fte9td0znzxeayi62ozq8a"); // double* ps = sp;
+UNSUPPORTED("73rfwkv8ws65l7qgnz7jw27gf"); // for (np = agfstnode(g); np; np = agnxtnode(g, np)) {
+UNSUPPORTED("8p3hwwbq7seyn0wpf7llgw1xd"); // ND_pos(np) = 0;
+UNSUPPORTED("a33fx4q39yal0dnv915x71zia"); // ND_coord(np).x = ((ps[0])*(double)72);
+UNSUPPORTED("avms8890ml5c9jclp66fpto3x"); // ND_coord(np).y = ((ps[1])*(double)72);
+UNSUPPORTED("aeuy5zibx9et1ncwcqwlr3s3m"); // ps += 2;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("btsriptlygrzlk6ojhvss234j"); // free (sp);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 nedairhdof6qkmjjoh4h68zy
+// static void doDot (Agraph_t* g)
+public static void doDot(Agraph_s g) {
+ENTERING("nedairhdof6qkmjjoh4h68zy","doDot");
+try {
+ Agraph_s ccs[];
+ Agraph_s sg;
+ int ncc;
+ int i;
+ pack_info pinfo = (pack_info) Memory.malloc(pack_info.class);
+ int Pack = getPack(g, -1, 8);
+ int mode = getPackModeInfo (g, enumAsInt(pack_mode.class, "l_undef"), pinfo);
+ getPackInfo(g, enumAsInt(pack_mode.class, "l_node"), 8, pinfo);
+ if ((mode == enumAsInt(pack_mode.class, "l_undef")) && (Pack < 0)) {
+ /* No pack information; use old dot with components
+ * handled during layout
+ */
+ dotLayout(g);
+ } else {
+UNSUPPORTED("952usp51fee2pbidl2frwpq2x"); // /* fill in default values */
+UNSUPPORTED("7d8flcn5zht92nop46f168hf9"); // if (mode == l_undef)
+UNSUPPORTED("bf04f2a6do2dovxgq57ta3qz5"); // pinfo.mode = l_node;
+UNSUPPORTED("7l7lph3yd7o3jelejupsiytnc"); // else if (Pack < 0)
+UNSUPPORTED("7odp6lwv29g4nwpfvqt8hkmve"); // Pack = 8;
+UNSUPPORTED("au4kpvl0egq3dt8hlmqnad61o"); // pinfo.margin = Pack;
+UNSUPPORTED("6o6lvrnsp1zkqdkduwrfetrrm"); // pinfo.fixed = 0;
+UNSUPPORTED("7ijhbsssflu2oty986iwhi5u7"); // /* components using clusters */
+UNSUPPORTED("axesx20t6oyprzdzjz5cwneq4"); // ccs = cccomps(g, &ncc, 0);
+UNSUPPORTED("edukq9g8egufczs6ja3h99k6a"); // if (ncc == 1) {
+UNSUPPORTED("aj3wrqm1ouyaocsn56geghko0"); // dotLayout(g);
+UNSUPPORTED("2pkescmk4qojc8cqt3wzo8jkp"); // } else if ((((Agraphinfo_t*)(((Agobj_t*)(g))->data))->drawing)->ratio_kind == R_NONE) {
+UNSUPPORTED("295yqzsqueggcx71mcuv1zy7t"); // pinfo.doSplines = 1;
+UNSUPPORTED("3rfcnwowz3h58n92j7igzwap0"); // for (i = 0; i < ncc; i++) {
+UNSUPPORTED("6n1wgj9rnpi5u0c1f6mo7hvdr"); // sg = ccs[i];
+UNSUPPORTED("9f5l1z5fur3bn6wlzykztsrr5"); // initSubg (sg, g);
+UNSUPPORTED("boery4d5nv4jssiy0y3mf2yf7"); // dotLayout (sg);
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("ahr97rgrh96az7iroebb6p14f"); // attachPos (g);
+UNSUPPORTED("1eeqkm1855z53jwep9ukxptxa"); // packSubgraphs(ncc, ccs, g, &pinfo);
+UNSUPPORTED("5jevnxwr3ejh3o6i1n3b15oyz"); // resetCoord (g);
+UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else {
+UNSUPPORTED("3dnz4esjw60s265perisqld8n"); // /* Not sure what semantics should be for non-trivial ratio
+UNSUPPORTED("9752lfn24j9vhkz6y8fvyvpop"); // * attribute with multiple components.
+UNSUPPORTED("cxv608avcmjij1ltc81ac9zp0"); // * One possibility is to layout nodes, pack, then apply the ratio
+UNSUPPORTED("71ykqx29qwldoh9wf4e85xh7u"); // * adjustment. We would then have to re-adjust all positions.
+UNSUPPORTED("29edlge3wqyp1gs0vymtr5700"); // */
+UNSUPPORTED("aj3wrqm1ouyaocsn56geghko0"); // dotLayout(g);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("cjjlbx1oxw3twss3vlotij507"); // for (i = 0; i < ncc; i++) {
+UNSUPPORTED("dc0uduk2687c8n6qn7y3y0aph"); // free ((((Agraphinfo_t*)(((Agobj_t*)(ccs[i]))->data))->drawing));
+UNSUPPORTED("6lefivq8plsiwa47ucvy1ze1a"); // agdelete(g, ccs[i]);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("5eru5cerydhchm7ojmgdlkv9y"); // free(ccs);
+ }
+} finally {
+LEAVING("nedairhdof6qkmjjoh4h68zy","doDot");
+}
+}
+
+
+
+
+//3 euvc3uoksq3e24augkwebfkcv
+// void dot_layout(Agraph_t * g)
+public static void dot_layout(Agraph_s g) {
+ENTERING("euvc3uoksq3e24augkwebfkcv","dot_layout");
+try {
+ if (agnnodes(g)!=0) doDot (g);
+ dotneato_postprocess(g);
+} finally {
+LEAVING("euvc3uoksq3e24augkwebfkcv","dot_layout");
+}
+}
+
+
+
+
+//3 ca52dadcp7m8x0bqhaw4tvtaw
+// Agraph_t * dot_root (void* p)
+public static Agraph_s dot_root(__ptr__ p) {
+ENTERING("ca52dadcp7m8x0bqhaw4tvtaw","dot_root");
+try {
+ return GD_dotroot(agroot(p));
+} finally {
+LEAVING("ca52dadcp7m8x0bqhaw4tvtaw","dot_root");
+}
+}
+
+
+}
diff --git a/src/gen/lib/dotgen/dotsplines__c.java b/src/gen/lib/dotgen/dotsplines__c.java
new file mode 100644
index 0000000..4265f90
--- /dev/null
+++ b/src/gen/lib/dotgen/dotsplines__c.java
@@ -0,0 +1,3180 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * Project Info: http://plantuml.com
+ *
+ * If you like this project or if you find it useful, you can support us at:
+ *
+ * http://plantuml.com/patreon (only 1$ per month!)
+ * http://plantuml.com/paypal
+ *
+ * This file is part of Smetana.
+ * Smetana is a partial translation of Graphviz/Dot sources from C to Java.
+ *
+ * (C) Copyright 2009-2017, Arnaud Roques
+ *
+ * This translation is distributed under the same Licence as the original C program:
+ *
+ *************************************************************************
+ * Copyright (c) 2011 AT&T Intellectual Property
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: See CVS logs. Details at http://www.graphviz.org/
+ *************************************************************************
+ *
+ * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
+ * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0]
+ *
+ * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES
+ * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ *
+ * You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package gen.lib.dotgen;
+import static gen.lib.cgraph.edge__c.agfstout;
+import static gen.lib.cgraph.edge__c.aghead;
+import static gen.lib.cgraph.edge__c.agnxtout;
+import static gen.lib.cgraph.edge__c.agtail;
+import static gen.lib.cgraph.node__c.agfstnode;
+import static gen.lib.cgraph.node__c.agnxtnode;
+import static gen.lib.cgraph.obj__c.agraphof;
+import static gen.lib.common.memory__c.gmalloc;
+import static gen.lib.common.memory__c.zmalloc;
+import static gen.lib.common.routespl__c.makeStraightEdge;
+import static gen.lib.common.routespl__c.routepolylines;
+import static gen.lib.common.routespl__c.routesplines;
+import static gen.lib.common.routespl__c.routesplinesinit;
+import static gen.lib.common.routespl__c.routesplinesterm;
+import static gen.lib.common.routespl__c.simpleSplineRoute;
+import static gen.lib.common.splines__c.add_box;
+import static gen.lib.common.splines__c.beginpath;
+import static gen.lib.common.splines__c.clip_and_install;
+import static gen.lib.common.splines__c.endpath;
+import static gen.lib.common.splines__c.getsplinepoints;
+import static gen.lib.common.splines__c.makeSelfEdge;
+import static gen.lib.common.utils__c.updateBB;
+import static gen.lib.dotgen.cluster__c.mark_lowclusters;
+import static smetana.core.JUtils.EQ;
+import static smetana.core.JUtils.LOG2;
+import static smetana.core.JUtils.NEQ;
+import static smetana.core.JUtils.function;
+import static smetana.core.JUtils.qsort;
+import static smetana.core.JUtils.sizeof;
+import static smetana.core.JUtils.sizeof_starstar_empty;
+import static smetana.core.JUtilsDebug.ENTERING;
+import static smetana.core.JUtilsDebug.LEAVING;
+import static smetana.core.Macro.ABS;
+import static smetana.core.Macro.AGSEQ;
+import static smetana.core.Macro.ALLOC_empty;
+import static smetana.core.Macro.BETWEEN;
+import static smetana.core.Macro.ED_adjacent;
+import static smetana.core.Macro.ED_edge_type;
+import static smetana.core.Macro.ED_head_port;
+import static smetana.core.Macro.ED_label;
+import static smetana.core.Macro.ED_spl;
+import static smetana.core.Macro.ED_tail_port;
+import static smetana.core.Macro.ED_to_orig;
+import static smetana.core.Macro.ED_to_virt;
+import static smetana.core.Macro.ED_tree_index;
+import static smetana.core.Macro.GD_bb;
+import static smetana.core.Macro.GD_flags;
+import static smetana.core.Macro.GD_flip;
+import static smetana.core.Macro.GD_has_labels;
+import static smetana.core.Macro.GD_maxrank;
+import static smetana.core.Macro.GD_minrank;
+import static smetana.core.Macro.GD_nlist;
+import static smetana.core.Macro.GD_nodesep;
+import static smetana.core.Macro.GD_rank;
+import static smetana.core.Macro.GD_ranksep;
+import static smetana.core.Macro.MAKEFWDEDGE;
+import static smetana.core.Macro.MAX;
+import static smetana.core.Macro.MIN;
+import static smetana.core.Macro.M_PI;
+import static smetana.core.Macro.N;
+import static smetana.core.Macro.ND_alg;
+import static smetana.core.Macro.ND_clust;
+import static smetana.core.Macro.ND_coord;
+import static smetana.core.Macro.ND_flat_out;
+import static smetana.core.Macro.ND_ht;
+import static smetana.core.Macro.ND_in;
+import static smetana.core.Macro.ND_label;
+import static smetana.core.Macro.ND_lw;
+import static smetana.core.Macro.ND_mval;
+import static smetana.core.Macro.ND_next;
+import static smetana.core.Macro.ND_node_type;
+import static smetana.core.Macro.ND_order;
+import static smetana.core.Macro.ND_other;
+import static smetana.core.Macro.ND_out;
+import static smetana.core.Macro.ND_rank;
+import static smetana.core.Macro.ND_rw;
+import static smetana.core.Macro.NOT;
+import static smetana.core.Macro.ROUND;
+import static smetana.core.Macro.UNSUPPORTED;
+import h.Agedge_s;
+import h.Agedgeinfo_t;
+import h.Agedgepair_s;
+import h.Agnode_s;
+import h.Agraph_s;
+import h.Ppoly_t;
+import h.ST_boxf;
+import h.ST_port;
+import h.attr_state_t;
+import h.bezier;
+import h.boxf;
+import h.path;
+import h.pathend_t;
+import h.pointf;
+import h.spline_info_t;
+import h.splines;
+import smetana.core.JUtils;
+import smetana.core.Memory;
+import smetana.core.Z;
+import smetana.core.__array_of_struct__;
+import smetana.core.__ptr__;
+import smetana.core.__struct__;
+
+public class dotsplines__c {
+//1 2digov3edok6d5srhgtlmrycs
+// extern lt_symlist_t lt_preloaded_symbols[]
+
+
+//1 baedz5i9est5csw3epz3cv7z
+// typedef Ppoly_t Ppolyline_t
+
+
+//1 9k44uhd5foylaeoekf3llonjq
+// extern Dtmethod_t* Dtset
+
+
+//1 1ahfywsmzcpcig2oxm7pt9ihj
+// extern Dtmethod_t* Dtbag
+
+
+//1 anhghfj3k7dmkudy2n7rvt31v
+// extern Dtmethod_t* Dtoset
+
+
+//1 5l6oj1ux946zjwvir94ykejbc
+// extern Dtmethod_t* Dtobag
+
+
+//1 2wtf222ak6cui8cfjnw6w377z
+// extern Dtmethod_t* Dtlist
+
+
+//1 d1s1s6ibtcsmst88e3057u9r7
+// extern Dtmethod_t* Dtstack
+
+
+//1 axa7mflo824p6fspjn1rdk0mt
+// extern Dtmethod_t* Dtqueue
+
+
+//1 ega812utobm4xx9oa9w9ayij6
+// extern Dtmethod_t* Dtdeque
+
+
+//1 cyfr996ur43045jv1tjbelzmj
+// extern Dtmethod_t* Dtorder
+
+
+//1 wlofoiftbjgrrabzb2brkycg
+// extern Dtmethod_t* Dttree
+
+
+//1 12bds94t7voj7ulwpcvgf6agr
+// extern Dtmethod_t* Dthash
+
+
+//1 9lqknzty480cy7zsubmabkk8h
+// extern Dtmethod_t _Dttree
+
+
+//1 bvn6zkbcp8vjdhkccqo1xrkrb
+// extern Dtmethod_t _Dthash
+
+
+//1 9lidhtd6nsmmv3e7vjv9e10gw
+// extern Dtmethod_t _Dtlist
+
+
+//1 34ujfamjxo7xn89u90oh2k6f8
+// extern Dtmethod_t _Dtqueue
+
+
+//1 3jy4aceckzkdv950h89p4wjc8
+// extern Dtmethod_t _Dtstack
+
+
+//1 8dfqgf3u1v830qzcjqh9o8ha7
+// extern Agmemdisc_t AgMemDisc
+
+
+//1 18k2oh2t6llfsdc5x0wlcnby8
+// extern Agiddisc_t AgIdDisc
+
+
+//1 a4r7hi80gdxtsv4hdoqpyiivn
+// extern Agiodisc_t AgIoDisc
+
+
+//1 bnzt5syjb7mgeru19114vd6xx
+// extern Agdisc_t AgDefaultDisc
+
+
+//1 35y2gbegsdjilegaribes00mg
+// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected
+
+
+//1 c2rygslq6bcuka3awmvy2b3ow
+// typedef Agsubnode_t Agnoderef_t
+
+
+//1 xam6yv0dcsx57dtg44igpbzn
+// typedef Dtlink_t Agedgeref_t
+
+
+//1 nye6dsi1twkbddwo9iffca1j
+// extern char *Version
+
+
+//1 65mu6k7h7lb7bx14jpiw7iyxr
+// extern char **Files
+
+
+//1 2rpjdzsdyrvomf00zcs3u3dyn
+// extern const char **Lib
+
+
+//1 6d2f111lntd2rsdt4gswh5909
+// extern char *CmdName
+
+
+//1 a0ltq04fpeg83soa05a2fkwb2
+// extern char *specificFlags
+
+
+//1 1uv30qeqq2jh6uznlr4dziv0y
+// extern char *specificItems
+
+
+//1 7i4hkvngxe3x7lmg5h6b3t9g3
+// extern char *Gvfilepath
+
+
+//1 9jp96pa73kseya3w6sulxzok6
+// extern char *Gvimagepath
+
+
+//1 40ylumfu7mrvawwf4v2asvtwk
+// extern unsigned char Verbose
+
+
+//1 93st8awjy1z0h07n28qycbaka
+// extern unsigned char Reduce
+
+
+//1 f2vs67ts992erf8onwfglurzp
+// extern int MemTest
+
+
+//1 c6f8whijgjwwagjigmxlwz3gb
+// extern char *HTTPServerEnVar
+
+
+//1 cp4hzj7p87m7arw776d3bt7aj
+// extern char *Output_file_name
+
+
+//1 a3rqagofsgraie6mx0krzkgsy
+// extern int graphviz_errors
+
+
+//1 5up05203r4kxvjn1m4njcgq5x
+// extern int Nop
+
+
+//1 umig46cco431x14b3kosde2t
+// extern double PSinputscale
+
+
+//1 52bj6v8fqz39khasobljfukk9
+// extern int Syntax_errors
+
+
+//1 9ekf2ina8fsjj6y6i0an6somj
+// extern int Show_cnt
+
+
+//1 38di5qi3nkxkq65onyvconk3r
+// extern char** Show_boxes
+
+
+//1 6ri6iu712m8mpc7t2670etpcw
+// extern int CL_type
+
+
+//1 bomxiw3gy0cgd1ydqtek7fpxr
+// extern unsigned char Concentrate
+
+
+//1 cqy3gqgcq8empdrbnrhn84058
+// extern double Epsilon
+
+
+//1 64slegfoouqeg0rmbyjrm8wgr
+// extern int MaxIter
+
+
+//1 88wdinpnmfs4mab4aw62yb0bg
+// extern int Ndim
+
+
+//1 8bbad3ogcelqnnvo5br5s05gq
+// extern int State
+
+
+//1 17rnd8q45zclfn68qqst2vxxn
+// extern int EdgeLabelsDone
+
+
+//1 ymx1z4s8cznjifl2d9f9m8jr
+// extern double Initial_dist
+
+
+//1 a33bgl0c3uqb3trx419qulj1x
+// extern double Damping
+
+
+//1 d9lvrpjg1r0ojv40pod1xwk8n
+// extern int Y_invert
+
+
+//1 71efkfs77q5tq9ex6y0f4kanh
+// extern int GvExitOnUsage
+
+
+//1 4xy2dkdkv0acs2ue9eca8hh2e
+// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin
+
+
+//1 9js5gxgzr74eakgtfhnbws3t9
+// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle
+
+
+//1 anqllp9sj7wo45w6bm11j8trn
+// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth
+
+
+//1 bh0z9puipqw7gymjd5h5b8s6i
+// extern struct fdpParms_s* fdp_parms
+
+
+
+
+//3 ciez0pfggxdljedzsbklq49f0
+// static inline point pointof(int x, int y)
+public static Object pointof(Object... arg) {
+UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x;
+UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 c1s4k85p1cdfn176o3uryeros
+// static inline pointf pointfof(double x, double y)
+public static __struct__<pointf> pointfof(double x, double y) {
+// WARNING!! STRUCT
+return pointfof_w_(x, y).copy();
+}
+private static __struct__<pointf> pointfof_w_(double x, double y) {
+ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", x);
+ r.setDouble("y", y);
+ return r;
+} finally {
+LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof");
+}
+}
+
+
+
+
+//3 7cufnfitrh935ew093mw0i4b7
+// static inline box boxof(int llx, int lly, int urx, int ury)
+public static Object boxof(Object... arg) {
+UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly;
+UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury;
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 1vvsta5i8of59frav6uymguav
+// static inline boxf boxfof(double llx, double lly, double urx, double ury)
+public static ST_boxf boxfof(double llx, double lly, double urx, double ury) {
+// WARNING!! STRUCT
+return boxfof_w_(llx, lly, urx, ury).copy();
+}
+private static ST_boxf boxfof_w_(double llx, double lly, double urx, double ury) {
+ENTERING("1vvsta5i8of59frav6uymguav","boxfof");
+try {
+ final ST_boxf b = new ST_boxf();
+ b.LL.x = llx;
+ b.LL.y = lly;
+ b.UR.x = urx;
+ b.UR.y = ury;
+ return b;
+} finally {
+LEAVING("1vvsta5i8of59frav6uymguav","boxfof");
+}
+}
+
+
+
+
+//3 1n5xl70wxuabyf97mclvilsm6
+// static inline point add_point(point p, point q)
+public static Object add_point(Object... arg) {
+UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x;
+UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 arrsbik9b5tnfcbzsm8gr2chx
+// static inline pointf add_pointf(pointf p, pointf q)
+public static __struct__<pointf> add_pointf(final __struct__<pointf> p, final __struct__<pointf> q) {
+// WARNING!! STRUCT
+return add_pointf_w_(p.copy(), q.copy()).copy();
+}
+private static __struct__<pointf> add_pointf_w_(final __struct__<pointf> p, final __struct__<pointf> q) {
+ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", p.getDouble("x") + q.getDouble("x"));
+ r.setDouble("y", p.getDouble("y") + q.getDouble("y"));
+ return r;
+} finally {
+LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+}
+}
+
+
+
+
+//3 ai2dprak5y6obdsflguh5qbd7
+// static inline point sub_point(point p, point q)
+public static Object sub_point(Object... arg) {
+UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 16f6pyogcv3j7n2p0n8giqqgh
+// static inline pointf sub_pointf(pointf p, pointf q)
+public static Object sub_pointf(Object... arg) {
+UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9k50jgrhc4f9824vf8ony74rw
+// static inline point mid_point(point p, point q)
+public static Object mid_point(Object... arg) {
+UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2;
+UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 59c4f7im0ftyowhnzzq2v9o1x
+// static inline pointf mid_pointf(pointf p, pointf q)
+public static Object mid_pointf(Object... arg) {
+UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.;
+UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 5r18p38gisvcx3zsvbb9saixx
+// static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+public static Object interpolate_pointf(Object... arg) {
+UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r;
+UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x);
+UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y);
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bxzrv2ghq04qk5cbyy68s4mol
+// static inline point exch_xy(point p)
+public static Object exch_xy(Object... arg) {
+UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9lt3e03tac6h6sydljrcws8fd
+// static inline pointf exch_xyf(pointf p)
+public static Object exch_xyf(Object... arg) {
+UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8l9qhieokthntzdorlu5zn29b
+// static inline box box_bb(box b0, box b1)
+public static Object box_bb(Object... arg) {
+UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 clws9h3bbjm0lw3hexf8nl4c4
+// static inline boxf boxf_bb(boxf b0, boxf b1)
+public static Object boxf_bb(Object... arg) {
+UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bit6ycxo1iqd2al92y8gkzlvb
+// static inline box box_intersect(box b0, box b1)
+public static Object box_intersect(Object... arg) {
+UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8gfybie7k6pgb3o1a6llgpwng
+// static inline boxf boxf_intersect(boxf b0, boxf b1)
+public static Object boxf_intersect(Object... arg) {
+UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 7z8j2quq65govaaejrz7b4cvb
+// static inline int box_overlap(box b0, box b1)
+public static Object box_overlap(Object... arg) {
+UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4z0suuut2acsay5m8mg9dqjdu
+// static inline int boxf_overlap(boxf b0, boxf b1)
+public static Object boxf_overlap(Object... arg) {
+UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 dd34swz5rmdgu3a2np2a4h1dy
+// static inline int box_contains(box b0, box b1)
+public static Object box_contains(Object... arg) {
+UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8laj1bspbu2i1cjd9upr7xt32
+// static inline int boxf_contains(boxf b0, boxf b1)
+public static Object boxf_contains(Object... arg) {
+UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4wf5swkz24xx51ja2dynbycu1
+// static inline pointf perp (pointf p)
+public static Object perp(Object... arg) {
+UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6dtlpzv4mvgzb9o0b252yweuv
+// static inline pointf scale (double c, pointf p)
+public static Object scale(Object... arg) {
+UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x;
+UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+//1 8vvgiozsykdn0hhbvaem6lifn
+// static boxf boxes[1000]
+//private static __array_of_struct__ boxes = __array_of_struct__.malloc(boxf.class, 1000);
+
+
+
+//3 dobhmc46zwtvv8rg3ywntl91j
+// static edge_t* getmainedge(edge_t * e)
+public static Agedge_s getmainedge(Agedge_s e) {
+ENTERING("dobhmc46zwtvv8rg3ywntl91j","getmainedge");
+try {
+ Agedge_s le = e;
+ while (ED_to_virt(le)!=null)
+ le = ED_to_virt(le);
+ while (ED_to_orig(le)!=null)
+ le = ED_to_orig(le);
+ return le;
+} finally {
+LEAVING("dobhmc46zwtvv8rg3ywntl91j","getmainedge");
+}
+}
+
+
+
+
+//3 ddeny5ht7w8b16ztj5zt840ld
+// static boolean spline_merge(node_t * n)
+public static boolean spline_merge(Agnode_s n) {
+ENTERING("ddeny5ht7w8b16ztj5zt840ld","spline_merge");
+try {
+ return ((ND_node_type(n) == 1)
+ && ((ND_in(n).size > 1) || (ND_out(n).size > 1)));
+} finally {
+LEAVING("ddeny5ht7w8b16ztj5zt840ld","spline_merge");
+}
+}
+
+
+
+
+//3 36ofw2qfqlh5ci8gc8cfkqgg3
+// static boolean swap_ends_p(edge_t * e)
+public static boolean swap_ends_p(Agedge_s e) {
+ENTERING("36ofw2qfqlh5ci8gc8cfkqgg3","swap_ends_p");
+try {
+ while (ED_to_orig(e)!=null)
+ e = ED_to_orig(e);
+ if (ND_rank(aghead(e)) > ND_rank(agtail(e)))
+ return false;
+ if (ND_rank(aghead(e)) < ND_rank(agtail(e)))
+ return NOT(false);
+ if (ND_order(aghead(e)) >= ND_order(agtail(e)))
+ return false;
+ return NOT(false);
+} finally {
+LEAVING("36ofw2qfqlh5ci8gc8cfkqgg3","swap_ends_p");
+}
+}
+
+
+//1 300wnvw9sndobgke752j9u139
+// static splineInfo sinfo =
+/*static final __struct__<splineInfo> sinfo = JUtils.from(splineInfo.class);
+static {
+ sinfo.setPtr("swapEnds", function(dotsplines__c.class, "swap_ends_p"));
+ sinfo.setPtr("splineMerge", function(dotsplines__c.class, "spline_merge"));
+}*/
+
+
+
+
+//3 3krohso3quojiv4fveh1en7o6
+// int portcmp(port p0, port p1)
+public static int portcmp(final ST_port p0, final ST_port p1) {
+// WARNING!! STRUCT
+return portcmp_w_(p0.copy(), p1.copy());
+}
+private static int portcmp_w_(final ST_port p0, final ST_port p1) {
+ENTERING("3krohso3quojiv4fveh1en7o6","portcmp");
+try {
+ int rv;
+ if (p1.defined == 0)
+ return (p0.defined!=0 ? 1 : 0);
+ if (p0.defined == 0)
+ return -1;
+ rv = (int) (p0.p.x - p1.p.x);
+ if (rv == 0)
+ rv = (int) (p0.p.y - p1.p.y);
+ return rv;
+} finally {
+LEAVING("3krohso3quojiv4fveh1en7o6","portcmp");
+}
+}
+
+
+
+
+//3 10wbtt4gwnxgqutinpj4ymjpk
+// static void swap_bezier(bezier * old, bezier * new)
+public static void swap_bezier(__ptr__ old, __ptr__ new_) {
+ENTERING("10wbtt4gwnxgqutinpj4ymjpk","swap_bezier");
+try {
+ __ptr__ list;
+ __ptr__ lp;
+ __ptr__ olp;
+ int i, sz;
+ sz = old.getInt("size");
+ list = gmalloc(sizeof(pointf.class, sz));
+ lp = list;
+ olp = old.getArrayOfPtr("list").plus(sz - 1).asPtr();
+ for (i = 0; i < sz; i++) { /* reverse list of points */
+ lp.getStruct().___(olp.getStruct());
+ lp=lp.plus(1);
+ olp=olp.plus(-1);
+ }
+ new_.setPtr("list", list);
+ new_.setInt("size", sz);
+ new_.setInt("sflag", old.getInt("eflag"));
+ new_.setInt("eflag", old.getInt("sflag"));
+ new_.setStruct("sp", old.getStruct("ep"));
+ new_.setStruct("ep", old.getStruct("sp"));
+} finally {
+LEAVING("10wbtt4gwnxgqutinpj4ymjpk","swap_bezier");
+}
+}
+
+
+
+
+//3 3256l3e2huarsy29dd97vqj85
+// static void swap_spline(splines * s)
+public static void swap_spline(splines s) {
+ENTERING("3256l3e2huarsy29dd97vqj85","swap_spline");
+try {
+ __ptr__ list;
+ __ptr__ lp;
+ __ptr__ olp;
+ int i, sz;
+ sz = s.getInt("size");
+ list = gmalloc(sizeof(bezier.class, sz));
+ lp = list;
+ olp = s.getArrayOfPtr("list").plus(sz - 1).asPtr();
+ for (i = 0; i < sz; i++) { /* reverse and swap list of beziers */
+ swap_bezier(olp, lp);
+ olp = olp.plus(-1);
+ lp = lp.plus(1);
+ }
+ /* free old structures */
+ for (i = 0; i < sz; i++)
+ Memory.free(s.getArrayOfPtr("list").plus(i).getPtr().getArrayOfPtr("list"));
+ Memory.free(s.getArrayOfPtr("list"));
+ s.setPtr("list", list);
+} finally {
+LEAVING("3256l3e2huarsy29dd97vqj85","swap_spline");
+}
+}
+
+
+
+
+//3 dgkssqjj566ifra0xy7m46qsb
+// static void edge_normalize(graph_t * g)
+public static void edge_normalize(Agraph_s g) {
+ENTERING("dgkssqjj566ifra0xy7m46qsb","edge_normalize");
+try {
+ Agedge_s e;
+ Agnode_s n;
+ for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) {
+ for (e = agfstout(g, n); e!=null; e = agnxtout(g, e)) {
+ if ((Boolean)Z.z().sinfo.call("swapEnds", e) && ED_spl(e)!=null)
+ swap_spline(ED_spl(e));
+ }
+ }
+} finally {
+LEAVING("dgkssqjj566ifra0xy7m46qsb","edge_normalize");
+}
+}
+
+
+
+
+//3 bwzdgdea9suuagzueyw8ztx42
+// static void resetRW (graph_t * g)
+public static Object resetRW(Object... arg) {
+UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void
+UNSUPPORTED("c4vqsmfolc1meewxoebfkyppx"); // resetRW (graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7ma9kdgag30w5ofv1niitxbro"); // node_t* n;
+UNSUPPORTED("7wq24g054kmx3aw25vk5ksj4"); // for (n = agfstnode(g); n; n = agnxtnode(g,n)) {
+UNSUPPORTED("b83f20tdode2lz5a49mhmn9ei"); // if (ND_other(n).list) {
+UNSUPPORTED("ez6pf4w4vi7z6fqq43v5i3gpv"); // double tmp = ND_rw(n);
+UNSUPPORTED("24qsh566odunv14qzj2zan7bz"); // ND_rw(n) = ND_mval(n);
+UNSUPPORTED("cgxuqwflawrd9e6dmnsh3sbwa"); // ND_mval(n) = tmp;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9co1bgu5603fx30juwb01faf
+// static void setEdgeLabelPos (graph_t * g)
+public static Object setEdgeLabelPos(Object... arg) {
+UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void
+UNSUPPORTED("7y94r9t4hf6d0ltbie4f323al"); // setEdgeLabelPos (graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7ma9kdgag30w5ofv1niitxbro"); // node_t* n;
+UNSUPPORTED("1o9j4rz3dizwsgefis1axd6uw"); // textlabel_t* l;
+UNSUPPORTED("cbzhyr6lytrowd5gxn3tg000a"); // /* place regular edge labels */
+UNSUPPORTED("8g62mxpap4eeua2lkn9a1iosi"); // for (n = GD_nlist(g); n; n = ND_next(n)) {
+UNSUPPORTED("53rvntgqit26uu0ydhawavshp"); // if (ND_node_type(n) == 1) {
+UNSUPPORTED("7sijld2wh9ulkpkumhl6dqqaj"); // if (ND_alg(n)) { // label of non-adjacent flat edge
+UNSUPPORTED("5ccfgna84rl1jtgmuk8nbffqy"); // edge_t* fe = (edge_t*)ND_alg(n);
+UNSUPPORTED("8rofnso8jnaa77ukvfpwruvyx"); // assert ((l = ED_label(fe)));
+UNSUPPORTED("ak1kh1v4u9s5kof1svwbc6ssr"); // l->pos = ND_coord(n);
+UNSUPPORTED("9ehteylkrnipypq5s9c6jjm67"); // l->set = NOT(0);
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("15c8rehrm31gtqtwrj9r863k5"); // else if ((l = ND_label(n))) {// label of regular edge
+UNSUPPORTED("3i64wd6mr21h7x0hadumabd5r"); // place_vnlabel(n);
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("mlknwb70zhu4paqbncp6enq9"); // if (l) updateBB(g, l);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6agx6m2qof9lg57co232lwakj
+// static void _dot_splines(graph_t * g, int normalize)
+static void _dot_splines(Agraph_s g, int normalize)
+{
+ENTERING("6agx6m2qof9lg57co232lwakj","_dot_splines");
+try {
+ int i, j, k, n_nodes, n_edges, ind, cnt;
+ Agnode_s n;
+ final __struct__<Agedgeinfo_t> fwdedgeai = JUtils.from(Agedgeinfo_t.class), fwdedgebi = JUtils.from(Agedgeinfo_t.class);
+ final __struct__<Agedgepair_s> fwdedgea = JUtils.from(Agedgepair_s.class), fwdedgeb = JUtils.from(Agedgepair_s.class);
+ Agedge_s e, e0, e1, ea, eb, le0, le1;
+ __ptr__ edges;
+ path P;
+ final __struct__<spline_info_t> sd = JUtils.from(spline_info_t.class);
+ int et = (GD_flags(g) & (7 << 1));
+ fwdedgea.getStruct("out").getStruct("base").setPtr("data", fwdedgeai.amp());
+ fwdedgeb.getStruct("out").getStruct("base").setPtr("data", fwdedgebi.amp());
+ if (et == (0 << 1)) return;
+ if (et == (2 << 1)) {
+ resetRW (g);
+ if ((GD_has_labels(g) & (1 << 0))!=0) {
+UNSUPPORTED("4k888z8ymdp2b653twxc1ugbu"); // agerr (AGWARN, "edge labels with splines=curved not supported in dot - use xlabels\n");
+ }
+ for (n = agfstnode (g); n!=null; n = agnxtnode(g, n)) {
+ for (e = agfstout(g, n); e!=null; e = agnxtout(g,e)) {
+ makeStraightEdge(g, e, et, Z.z().sinfo);
+ }
+ }
+UNSUPPORTED("46btiag50nczzur103eqhjcup"); // goto finish;
+ }
+ mark_lowclusters(g);
+ if (routesplinesinit()!=0) return;
+ P = (path) zmalloc(sizeof(path.class));
+ /* FlatHeight = 2 * GD_nodesep(g); */
+ sd.setInt("Splinesep", GD_nodesep(g) / 4);
+ sd.setInt("Multisep", GD_nodesep(g));
+ edges = zmalloc(sizeof_starstar_empty(Agedge_s.class, 128));
+ /* compute boundaries and list of splines */
+ sd.setInt("RightBound", 0);
+ sd.setInt("LeftBound", 0);
+ n_edges = n_nodes = 0;
+ for (i = GD_minrank(g); i <= GD_maxrank(g); i++) {
+ n_nodes += GD_rank(g).plus(i).getInt("n");
+ if ((n = (Agnode_s) GD_rank(g).plus(i).getArrayOfPtr("v").plus(0).getPtr())!=null)
+ sd.setInt("LeftBound", (int)MIN(sd.getInt("LeftBound"), (ND_coord(n).getDouble("x") - ND_lw(n))));
+ if (GD_rank(g).plus(i).getInt("n")!=0 && (n = (Agnode_s) GD_rank(g).plus(i).getArrayOfPtr("v").plus(GD_rank(g).plus(i).getInt("n") - 1).getPtr())!=null)
+ sd.setInt("RightBound", (int)MAX(sd.getInt("RightBound"), (ND_coord(n).getDouble("x") + ND_rw(n))));
+ sd.setInt("LeftBound", sd.getInt("LeftBound") - 16);
+ sd.setInt("RightBound", sd.getInt("RightBound") + 16);
+ for (j = 0; j < GD_rank(g).plus(i).getInt("n"); j++) {
+ n = (Agnode_s) GD_rank(g).plus(i).getArrayOfPtr("v").plus(j).getPtr();
+ /* if n is the label of a flat edge, copy its position to
+ * the label.
+ */
+ if (ND_alg(n)!=null) {
+ Agedge_s fe = (Agedge_s) ND_alg(n);
+ assert (ED_label(fe)!=null);
+ ED_label(fe).setStruct("pos", ND_coord(n));
+ ED_label(fe).setBoolean("set", NOT(false));
+ }
+ if ((ND_node_type(n) != 0) &&
+ ((Boolean)Z.z().sinfo.call("splineMerge", n) == false))
+ continue;
+ for (k = 0; (e = (Agedge_s) ND_out(n).getFromList(k))!=null; k++) {
+ if ((ED_edge_type(e) == 4)
+ || (ED_edge_type(e) == 6))
+ continue;
+ setflags(e, 1, 16, 64);
+ edges.plus(n_edges++).setPtr(e);
+ if (n_edges % 128 == 0)
+ edges = ALLOC_empty (n_edges + 128, edges, Agedge_s.class);
+ }
+ if (ND_flat_out(n).listNotNull())
+ for (k = 0; (e = (Agedge_s) ND_flat_out(n).getFromList(k))!=null; k++) {
+ setflags(e, 2, 0, 128);
+ edges.plus(n_edges++).setPtr(e);
+ if (n_edges % 128 == 0)
+ edges = ALLOC_empty (n_edges + 128, edges, Agedge_s.class);
+ }
+ if (ND_other(n).listNotNull()) {
+ /* In position, each node has its rw stored in mval and,
+ * if a node is part of a loop, rw may be increased to
+ * reflect the loops and associated labels. We restore
+ * the original value here.
+ */
+ if (ND_node_type(n) == 0) {
+ double tmp = ND_rw(n);
+ ND_rw(n, ND_mval(n));
+ ND_mval(n, tmp);
+ }
+ for (k = 0; (e = (Agedge_s) ND_other(n).getFromList(k))!=null; k++) {
+ setflags(e, 0, 0, 128);
+ edges.plus(n_edges++).setPtr(e);
+ if (n_edges % 128 == 0)
+ edges = ALLOC_empty (n_edges + 128, edges, Agedge_s.class);
+ }
+ }
+ }
+ }
+ /* Sort so that equivalent edges are contiguous.
+ * Equivalence should basically mean that 2 edges have the
+ * same set {(tailnode,tailport),(headnode,headport)}, or
+ * alternatively, the edges would be routed identically if
+ * routed separately.
+ */
+ LOG2("_dot_splines::n_edges="+n_edges);
+ qsort(edges,
+ n_edges,
+ sizeof(edges.plus(0)),
+ function(dotsplines__c.class, "edgecmp"));
+ /* FIXME: just how many boxes can there be? */
+ P.setPtr("boxes", zmalloc(sizeof(boxf.class, n_nodes + 20 * 2 * 9)));
+ sd.setPtr("Rank_box", zmalloc(sizeof(boxf.class, i)));
+ if (et == (1 << 1)) {
+ /* place regular edge labels */
+ for (n = GD_nlist(g); n!=null; n = ND_next(n)) {
+ if ((ND_node_type(n) == 1) && (ND_label(n)!=null)) {
+ place_vnlabel(n);
+ }
+ }
+ }
+ for (i = 0; i < n_edges;) {
+ boolean havePorts;
+ ind = i;
+ le0 = getmainedge((e0 = (Agedge_s) edges.plus(i++).getPtr()));
+ if (ED_tail_port(e0).defined!=0 || ED_head_port(e0).defined!=0) {
+ havePorts = NOT(false);
+ ea = e0;
+ } else {
+ havePorts = false;
+ ea = le0;
+ }
+ if ((ED_tree_index(ea) & 32)!=0) {
+ MAKEFWDEDGE(fwdedgea.getStruct("out").amp(), ea);
+ ea = (Agedge_s) fwdedgea.getStruct("out").amp();
+ }
+ for (cnt = 1; i < n_edges; cnt++, i++) {
+ if (NEQ(le0, (le1 = getmainedge((e1 = (Agedge_s) edges.plus(i).getPtr())))))
+ break;
+ if (ED_adjacent(e0)!=0) continue; /* all flat adjacent edges at once */
+ if (ED_tail_port(e1).defined!=0 || ED_head_port(e1).defined!=0) {
+ if (N(havePorts)) break;
+ else
+ eb = e1;
+ } else {
+ if (havePorts) break;
+ else
+ eb = le1;
+ }
+ if ((ED_tree_index(eb) & 32)!=0) {
+ MAKEFWDEDGE(fwdedgeb.getStruct("out").amp(), eb);
+ eb = (Agedge_s) fwdedgeb.getStruct("out").amp();
+ }
+ if (portcmp(ED_tail_port(ea), ED_tail_port(eb))!=0)
+ break;
+ if (portcmp(ED_head_port(ea), ED_head_port(eb))!=0)
+ break;
+ if ((ED_tree_index(e0) & 15) == 2
+ && NEQ(ED_label(e0), ED_label(e1)))
+ break;
+ if ((ED_tree_index(edges.plus(i).getPtr()) & 64)!=0) /* Aha! -C is on */
+ break;
+ }
+ if (EQ(agtail(e0), aghead(e0))) {
+ int b, sizey, r;
+ n = agtail(e0);
+ r = ND_rank(n);
+ if (r == GD_maxrank(g)) {
+ if (r > 0)
+ sizey = (int) (ND_coord(GD_rank(g).plus(r-1).getArrayOfPtr("v").plus(0).getPtr()).getDouble("y") - ND_coord(n).getDouble("y"));
+ else
+ sizey = (int) ND_ht(n);
+ }
+ else if (r == GD_minrank(g)) {
+ sizey = (int)(ND_coord(n).getDouble("y") - ND_coord(GD_rank(g).plus(r+1).getArrayOfPtr("v").plus(0).getPtr()).getDouble("y"));
+ }
+ else {
+ int upy = (int) (ND_coord(GD_rank(g).plus(r-1).getArrayOfPtr("v").plus(0).getPtr()).getDouble("y") - ND_coord(n).getDouble("y"));
+ int dwny = (int) (ND_coord(n).getDouble("y") - ND_coord(GD_rank(g).plus(r+1).getArrayOfPtr("v").plus(0).getPtr()).getDouble("y"));
+ sizey = MIN(upy, dwny);
+ }
+ makeSelfEdge(P, edges, ind, cnt, sd.getInt("Multisep"), sizey/2, Z.z().sinfo.amp());
+ for (b = 0; b < cnt; b++) {
+ e = (Agedge_s) edges.plus(ind+b).getPtr();
+ if (ED_label(e)!=null)
+ updateBB(g, ED_label(e));
+ }
+ }
+ else if (ND_rank(agtail(e0)) == ND_rank(aghead(e0))) {
+ make_flat_edge(g, sd.amp(), P, edges, ind, cnt, et);
+ }
+ else
+ make_regular_edge(g, sd.amp(), P, edges, ind, cnt, et);
+ }
+ /* place regular edge labels */
+ for (n = GD_nlist(g); n!=null; n = ND_next(n)) {
+ if ((ND_node_type(n) == 1) && (ND_label(n))!=null) {
+ place_vnlabel(n);
+ updateBB(g, ND_label(n));
+ }
+ }
+ /* normalize splines so they always go from tail to head */
+ /* place_portlabel relies on this being done first */
+ if (normalize!=0)
+ edge_normalize(g);
+finish :
+ /* vladimir: place port labels */
+ /* FIX: head and tail labels are not part of cluster bbox */
+ if ((Z.z().E_headlabel!=null || Z.z().E_taillabel!=null) && (Z.z().E_labelangle!=null || Z.z().E_labeldistance!=null)) {
+UNSUPPORTED("attp4bsjqe99xnhi7lr7pszar"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
+UNSUPPORTED("54jm4bbgzyl0txauszo1mappu"); // if (E_headlabel) {
+UNSUPPORTED("dw8yu56thd0wpolmtby8r5doo"); // for (e = agfstin(g, n); e; e = agnxtin(g, e))
+UNSUPPORTED("4h39n1vkqyqszgmg2o7d2pw7z"); // if (ED_head_label(AGMKOUT(e))) {
+UNSUPPORTED("ex7h0x60y0l4oi3dsqg7sfk1t"); // place_portlabel(AGMKOUT(e), NOT(0));
+UNSUPPORTED("9u960ou1xs0cdsdn0qe8a13ye"); // updateBB(g, ED_head_label(AGMKOUT(e)));
+UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // }
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("cqi8doquf015wo1bw8on36qct"); // if (E_taillabel) {
+UNSUPPORTED("6gnq0yj07udpwxbuc86k8yysb"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) {
+UNSUPPORTED("ejz8yrj8mh0l0gdl5zeaht1ex"); // if (ED_tail_label(e)) {
+UNSUPPORTED("9pdg7peez077ldl84zfh73o1w"); // if (place_portlabel(e, 0))
+UNSUPPORTED("6jup6d9gfnx4b1wptmtw09n6w"); // updateBB(g, ED_tail_label(e));
+UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // }
+UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // }
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+ }
+ /* end vladimir */
+ if (et != (2 << 1)) {
+ Memory.free(edges);
+ Memory.free(P.getPtr("boxes"));
+ Memory.free(P);
+ Memory.free(sd.getPtr("Rank_box"));
+ routesplinesterm();
+ }
+ Z.z().State = 1;
+ Z.z().EdgeLabelsDone = 1;
+} finally {
+LEAVING("6agx6m2qof9lg57co232lwakj","_dot_splines");
+}
+}
+
+
+
+
+//3 5n306wbdfjbfnimdo9lg6jjaa
+// void dot_splines(graph_t * g)
+public static void dot_splines(Agraph_s g) {
+ENTERING("5n306wbdfjbfnimdo9lg6jjaa","dot_splines");
+try {
+ _dot_splines (g, 1);
+} finally {
+LEAVING("5n306wbdfjbfnimdo9lg6jjaa","dot_splines");
+}
+}
+
+
+
+
+//3 8jja9ukzsq8tlb9yy7uzavg91
+// static void place_vnlabel(node_t * n)
+public static void place_vnlabel(Agnode_s n) {
+ENTERING("8jja9ukzsq8tlb9yy7uzavg91","place_vnlabel");
+try {
+ final __struct__<pointf> dimen = JUtils.from(pointf.class);
+ double width;
+ Agedge_s e;
+ if (ND_in(n).size == 0)
+ return; /* skip flat edge labels here */
+ for (e = (Agedge_s) ND_out(n).getFromList(0); ED_edge_type(e) != 0;
+ e = ED_to_orig(e));
+ dimen.___(ED_label(e).getStruct("dimen"));
+ width = GD_flip(agraphof(n))!=0 ? dimen.getDouble("y") : dimen.getDouble("x");
+ ED_label(e).getStruct("pos").setDouble("x", ND_coord(n).getDouble("x") + width / 2.0);
+ ED_label(e).getStruct("pos").setDouble("y", ND_coord(n).getDouble("y"));
+ ED_label(e).setBoolean("set", NOT(false));
+} finally {
+LEAVING("8jja9ukzsq8tlb9yy7uzavg91","place_vnlabel");
+}
+}
+
+
+
+
+//3 598jn37hjkm7j0kcg2nmdvlwq
+// static void setflags(edge_t *e, int hint1, int hint2, int f3)
+public static void setflags(Agedge_s e, int hint1, int hint2, int f3) {
+ENTERING("598jn37hjkm7j0kcg2nmdvlwq","setflags");
+try {
+ int f1, f2;
+ if (hint1 != 0)
+ f1 = hint1;
+ else {
+ if (EQ(agtail(e), aghead(e)))
+ if (ED_tail_port(e).defined!=0 || ED_head_port(e).defined!=0)
+ f1 = 4;
+ else
+ f1 = 8;
+ else if (ND_rank(agtail(e)) == ND_rank(aghead(e)))
+ f1 = 2;
+ else
+ f1 = 1;
+ }
+ if (hint2 != 0)
+ f2 = hint2;
+ else {
+ if (f1 == 1)
+ f2 = (ND_rank(agtail(e)) < ND_rank(aghead(e))) ? 16 : 32;
+ else if (f1 == 2)
+ f2 = (ND_order(agtail(e)) < ND_order(aghead(e))) ? 16 : 32;
+ else /* f1 == SELF*EDGE */
+ f2 = 16;
+ }
+ ED_tree_index(e, (f1 | f2 | f3));
+} finally {
+LEAVING("598jn37hjkm7j0kcg2nmdvlwq","setflags");
+}
+}
+
+
+
+
+//3 1nf1s6wkn35ptjn884ii56fh
+// static int edgecmp(edge_t** ptr0, edge_t** ptr1)
+public static int edgecmp(__ptr__ ptr0, __ptr__ ptr1) {
+ENTERING("1nf1s6wkn35ptjn884ii56fh","edgecmp");
+try {
+ final __struct__<Agedgeinfo_t> fwdedgeai = JUtils.from(Agedgeinfo_t.class), fwdedgebi = JUtils.from(Agedgeinfo_t.class);
+ final __struct__<Agedgepair_s> fwdedgea = JUtils.from(Agedgepair_s.class), fwdedgeb = JUtils.from(Agedgepair_s.class);
+ Agedge_s e0, e1, ea, eb, le0, le1;
+ int et0, et1, v0, v1, rv;
+ double t0, t1;
+ fwdedgea.getStruct("out").getStruct("base").setPtr("data", fwdedgeai.amp());
+ fwdedgeb.getStruct("out").getStruct("base").setPtr("data", fwdedgebi.amp());
+ e0 = (Agedge_s) ptr0.getPtr();
+ e1 = (Agedge_s) ptr1.getPtr();
+ et0 = ED_tree_index(e0) & 15;
+ et1 = ED_tree_index(e1) & 15;
+ if (et0 != et1)
+ return (et1 - et0);
+ le0 = getmainedge(e0);
+ le1 = getmainedge(e1);
+ t0 = ND_rank(agtail(le0)) - ND_rank(aghead(le0));
+ t1 = ND_rank(agtail(le1)) - ND_rank(aghead(le1));
+ v0 = ABS((int)t0); /* ugly, but explicit as to how we avoid equality tests on fp numbers */
+ v1 = ABS((int)t1);
+ if (v0 != v1)
+ return (v0 - v1);
+ t0 = ND_coord(agtail(le0)).getDouble("x") - ND_coord(aghead(le0)).getDouble("x");
+ t1 = ND_coord(agtail(le1)).getDouble("x") - ND_coord(aghead(le1)).getDouble("x");
+ v0 = ABS((int)t0);
+ v1 = ABS((int)t1);
+ if (v0 != v1)
+ return (v0 - v1);
+ /* This provides a cheap test for edges having the same set of endpoints. */
+ if (AGSEQ(le0) != AGSEQ(le1))
+ return (AGSEQ(le0) - AGSEQ(le1));
+ ea = (ED_tail_port(e0).defined!=0 || ED_head_port(e0).defined!=0) ? e0 : le0;
+ if ((ED_tree_index(ea) & 32)!=0) {
+ MAKEFWDEDGE(fwdedgea.getStruct("out").amp(), ea);
+ ea = fwdedgea.getStruct("out").amp();
+ }
+ eb = (ED_tail_port(e1).defined!=0 || ED_head_port(e1).defined!=0) ? e1 : le1;
+ if ((ED_tree_index(eb) & 32)!=0) {
+ MAKEFWDEDGE(fwdedgeb.getStruct("out").amp(), eb);
+ eb = fwdedgeb.getStruct("out").amp();
+ }
+ if ((rv = portcmp(ED_tail_port(ea), ED_tail_port(eb)))!=0)
+ return rv;
+ if ((rv = portcmp(ED_head_port(ea), ED_head_port(eb)))!=0)
+ return rv;
+ et0 = ED_tree_index(e0) & 192;
+ et1 = ED_tree_index(e1) & 192;
+ if (et0 != et1)
+ return (et0 - et1);
+ if (et0 == 2 && NEQ(ED_label(e0), ED_label(e1)))
+ UNSUPPORTED("return (int) (ED_label(e0) - ED_label(e1))");
+ return (AGSEQ(e0) - AGSEQ(e1));
+} finally {
+LEAVING("1nf1s6wkn35ptjn884ii56fh","edgecmp");
+}
+}
+
+
+
+
+//3 djq8tev8thshox7bob64vi0tf
+// static void setState (graph_t* auxg, attr_state_t* attr_state)
+public static Object setState(Object... arg) {
+UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void
+UNSUPPORTED("7ovh16jwyjc9wtu0rfxnlws9r"); // setState (graph_t* auxg, attr_state_t* attr_state)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("1ko3jd94xpoli03tk73ardy84"); // /* save state */
+UNSUPPORTED("3ibgalw3fchq736xx1ozbvh27"); // attr_state->E_constr = E_constr;
+UNSUPPORTED("e9yatqfh98i71w3v1jcx1agi9"); // attr_state->E_samehead = E_samehead;
+UNSUPPORTED("57rkvwknyk9urdhck24todttg"); // attr_state->E_sametail = E_sametail;
+UNSUPPORTED("4y5i0lqx0ze46l88ehzdh2x1z"); // attr_state->E_weight = E_weight;
+UNSUPPORTED("3yryq1e1hmam5hqciu93ywjj2"); // attr_state->E_minlen = E_minlen;
+UNSUPPORTED("1n91lxusirg2v758j4v9o9hcg"); // attr_state->E_fontcolor = E_fontcolor;
+UNSUPPORTED("1ssj9fq3o1sm21ggttj4r3mo0"); // attr_state->E_fontname = E_fontname;
+UNSUPPORTED("45ntpz46gx7j2hfu2r6ceescw"); // attr_state->E_fontsize = E_fontsize;
+UNSUPPORTED("6vxi0wxhhjg065ishw2vebsqv"); // attr_state->E_headclip = E_headclip;
+UNSUPPORTED("aqu557ovwt2k4j894b5p9dssa"); // attr_state->E_headlabel = E_headlabel;
+UNSUPPORTED("6shb2vynxxgck2x8e8oz63ye"); // attr_state->E_label = E_label;
+UNSUPPORTED("84eq22wy1zlxwofo8cwwbddbb"); // attr_state->E_label_float = E_label_float;
+UNSUPPORTED("czndn89byb90jujvx2sudb6d6"); // attr_state->E_labelfontcolor = E_labelfontcolor;
+UNSUPPORTED("385rz6p4kom75dmgvepqmxlrq"); // attr_state->E_labelfontname = E_labelfontname;
+UNSUPPORTED("397fs88n9xnlcqo4z8at7j66s"); // attr_state->E_labelfontsize = E_labelfontsize;
+UNSUPPORTED("f2nu6sif9lmukmlj2um7gnxns"); // attr_state->E_tailclip = E_tailclip;
+UNSUPPORTED("3ctu9gb3ojun885w9ymnch0er"); // attr_state->E_taillabel = E_taillabel;
+UNSUPPORTED("qiafl7ru9bq54qol6lov5rgm"); // attr_state->E_xlabel = E_xlabel;
+UNSUPPORTED("ap9hj5xd4dfmwws8egpgvk5ti"); // attr_state->N_height = N_height;
+UNSUPPORTED("ctvaloqgyn45in0jdkkvdpf6g"); // attr_state->N_width = N_width;
+UNSUPPORTED("75ey3ud905155tfmw9zapeawj"); // attr_state->N_shape = N_shape;
+UNSUPPORTED("19bnzpge8znnwzna8ub6otjze"); // attr_state->N_style = N_style;
+UNSUPPORTED("6242e8neunx553zs7jb52e2i3"); // attr_state->N_fontsize = N_fontsize;
+UNSUPPORTED("1rjcall3fixy49t0s4bcdgoho"); // attr_state->N_fontname = N_fontname;
+UNSUPPORTED("1bj2vtyz3gettntmktngyjv02"); // attr_state->N_fontcolor = N_fontcolor;
+UNSUPPORTED("1mj5q5f1eft9otmsuyiadl54z"); // attr_state->N_label = N_label;
+UNSUPPORTED("5lkkhmgpur2i2arkoxbpb8lse"); // attr_state->N_xlabel = N_xlabel;
+UNSUPPORTED("3c9tzymzuj2wkftyepa2epzur"); // attr_state->N_showboxes = N_showboxes;
+UNSUPPORTED("9urvz64idw6yth9938puegx1d"); // attr_state->N_ordering = N_ordering;
+UNSUPPORTED("9wqn3lttroloie8t4urgw9dwl"); // attr_state->N_sides = N_sides;
+UNSUPPORTED("7aovr97vmuic712quqt6n4gkd"); // attr_state->N_peripheries = N_peripheries;
+UNSUPPORTED("dc9knw1esnnr7j77so6k8zblk"); // attr_state->N_skew = N_skew;
+UNSUPPORTED("eoium8gqo2cgsjv87c20ixx5k"); // attr_state->N_orientation = N_orientation;
+UNSUPPORTED("aq6is6cduc5wvclu1hjacuyk0"); // attr_state->N_distortion = N_distortion;
+UNSUPPORTED("3w13k0cqxkk8gniu6ydy3qii6"); // attr_state->N_fixed = N_fixed;
+UNSUPPORTED("32p2drvqb6h9n0118du912gv0"); // attr_state->N_nojustify = N_nojustify;
+UNSUPPORTED("e2hsbuo1kd2fghtopje0lfp2b"); // attr_state->N_group = N_group;
+UNSUPPORTED("74w0uzukx3derbgpgi60dzyyg"); // attr_state->State = State;
+UNSUPPORTED("936fjorw02qiz50qpj7y6en2m"); // attr_state->G_ordering = G_ordering;
+UNSUPPORTED("2l0v2tecrgmws3to99rcimxzm"); // E_constr = NULL;
+UNSUPPORTED("93dfyiz6pxq59j6ujx97hdd0c"); // E_samehead = agattr(auxg,AGEDGE, "samehead", NULL);
+UNSUPPORTED("7kovxag1wgr874sgxwpz7ls6a"); // E_sametail = agattr(auxg,AGEDGE, "sametail", NULL);
+UNSUPPORTED("295z0g5v309fbrrdopfy66rf4"); // E_weight = agattr(auxg,AGEDGE, "weight", NULL);
+UNSUPPORTED("3uo53r92k5fuzy9gb2i1k7612"); // if (!E_weight)
+UNSUPPORTED("4oq1f4cnu0hk0xm34kx9m79le"); // E_weight = agattr (auxg,AGEDGE,"weight", "");
+UNSUPPORTED("aoqamti27wg8hvpyho5xmdc9"); // E_minlen = NULL;
+UNSUPPORTED("8jzaf5sdfgbpqx8y0squconvr"); // E_fontcolor = NULL;
+UNSUPPORTED("25csaeghkl1rd5cha609fm2vm"); // E_fontname = (agattr(auxg,AGEDGE,"fontname",NULL));
+UNSUPPORTED("d9ivs4hv5xdhsxwh8oz1dri02"); // E_fontsize = (agattr(auxg,AGEDGE,"fontsize",NULL));
+UNSUPPORTED("djpd3vd7suatk0n76mplhzog4"); // E_headclip = (agattr(auxg,AGEDGE,"headclip",NULL));
+UNSUPPORTED("8fy5jrgw22q72jvvjmqh6ajjb"); // E_headlabel = NULL;
+UNSUPPORTED("93a15wlfj0tmijeeyd1qb12v6"); // E_label = (agattr(auxg,AGEDGE,"label",NULL));
+UNSUPPORTED("2l6gmyi1pz4cv9i29k4u3mpjf"); // E_label_float = (agattr(auxg,AGEDGE,"label_float",NULL));
+UNSUPPORTED("dcp5qxpq37yer9cipch7q2oc4"); // E_labelfontcolor = NULL;
+UNSUPPORTED("133ni5qwdb96od0wcma7hj05h"); // E_labelfontname = (agattr(auxg,AGEDGE,"labelfontname",NULL));
+UNSUPPORTED("cq9n4kf29qgqy1ll6gandld7f"); // E_labelfontsize = (agattr(auxg,AGEDGE,"labelfontsize",NULL));
+UNSUPPORTED("2l9pqb0sug1sr8dlojy1gvik0"); // E_tailclip = (agattr(auxg,AGEDGE,"tailclip",NULL));
+UNSUPPORTED("9a173t42nyif5cx0ee6c4qos2"); // E_taillabel = NULL;
+UNSUPPORTED("pu58ta2e8cevjt84brxtyecs"); // E_xlabel = NULL;
+UNSUPPORTED("2p7j1fghgsib6tkic2cc1t601"); // N_height = (agattr(auxg,AGNODE,"height",NULL));
+UNSUPPORTED("49eok3z6e4piel4m6f7rk8fb6"); // N_width = (agattr(auxg,AGNODE,"width",NULL));
+UNSUPPORTED("8cyc904mtcb0zlwybzrqxujrv"); // N_shape = (agattr(auxg,AGNODE,"shape",NULL));
+UNSUPPORTED("1ggb495lty2zumaw3qh2d3ssd"); // N_style = NULL;
+UNSUPPORTED("6hcb194pxn8upijardzdy3v2a"); // N_fontsize = (agattr(auxg,AGNODE,"fontsize",NULL));
+UNSUPPORTED("e1cg6m56w3uwo3m2dfdh71o5x"); // N_fontname = (agattr(auxg,AGNODE,"fontname",NULL));
+UNSUPPORTED("1gjzz1tv51zd3vsgyc6b8dfdz"); // N_fontcolor = NULL;
+UNSUPPORTED("42y8wmut30tkdxrxdvh5v8xtz"); // N_label = (agattr(auxg,AGNODE,"label",NULL));
+UNSUPPORTED("7jni9lzv0nagk8mnil6vsgzpt"); // N_xlabel = NULL;
+UNSUPPORTED("5hshk2a2mwuk7cjxsc4mzky7g"); // N_showboxes = NULL;
+UNSUPPORTED("1j63bq1sarpj53iwvo4ynyeck"); // N_ordering = (agattr(auxg,AGNODE,"ordering",NULL));
+UNSUPPORTED("7yaoaugb8cqh7ksl8w4i4utlv"); // N_sides = (agattr(auxg,AGNODE,"sides",NULL));
+UNSUPPORTED("15x8xrchzah7wcc5ukej42hut"); // N_peripheries = (agattr(auxg,AGNODE,"peripheries",NULL));
+UNSUPPORTED("dcu49fws0uvo8falspy1lno4k"); // N_skew = (agattr(auxg,AGNODE,"skew",NULL));
+UNSUPPORTED("bvjg1ch1pmuvfhvf5ubyrqhl3"); // N_orientation = (agattr(auxg,AGNODE,"orientation",NULL));
+UNSUPPORTED("b67lzfds2wabbxqa4qaoj0iv8"); // N_distortion = (agattr(auxg,AGNODE,"distortion",NULL));
+UNSUPPORTED("yet2s8h61hoih7vba5lhvbn"); // N_fixed = (agattr(auxg,AGNODE,"fixed",NULL));
+UNSUPPORTED("dv9ccs2r6bgkfuzvquyym1z1k"); // N_nojustify = NULL;
+UNSUPPORTED("7kwmsq3m3f4oe4jyi2hzkq544"); // N_group = NULL;
+UNSUPPORTED("3lqtt3u3nf2945mjpkjcw6s48"); // G_ordering = (agattr(auxg,AGRAPH,"ordering",NULL));
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 14hhte1l3zo45pzop5ugwahiv
+// static graph_t* cloneGraph (graph_t* g, attr_state_t* attr_state)
+public static Object cloneGraph(Object... arg) {
+UNSUPPORTED("9bkg8lvj5zr49zg08g7iijeg0"); // static graph_t*
+UNSUPPORTED("4uq8e6159vvwjuygnnrtonzjr"); // cloneGraph (graph_t* g, attr_state_t* attr_state)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("d4lkyrfdivg76lnwroshuwy1r"); // Agsym_t* sym;
+UNSUPPORTED("8scmnlh4aqjfli9hjn7snnhb2"); // graph_t* auxg;
+UNSUPPORTED("9wn75gbfikchs3m5ip8uqbqp9"); // if (agisdirected(g))
+UNSUPPORTED("bc2kavqqh860759qs0rw39g9w"); // auxg = agopen ("auxg",Agdirected, ((Agdisc_t *)0));
+UNSUPPORTED("div10atae09n36x269sl208r1"); // else
+UNSUPPORTED("41dm8ksorga6af1u82vvp2o08"); // auxg = agopen ("auxg",Agundirected, ((Agdisc_t *)0));
+UNSUPPORTED("dvx3r3ba8ihb3ho0irr3iflz9"); // agbindrec(auxg, "Agraphinfo_t", sizeof(Agraphinfo_t), NOT(0));
+UNSUPPORTED("8o4tyxwwt6nurmyulizd8yx4h"); // agattr(auxg, AGRAPH, "rank", "");
+UNSUPPORTED("4azamavz8yei4klxixxjkjdzy"); // GD_drawing(auxg) = (layout_t*)zmalloc(sizeof(layout_t));
+UNSUPPORTED("bl2bbfcsejbdva171i3uuah14"); // GD_drawing(auxg)->quantum = GD_drawing(g)->quantum;
+UNSUPPORTED("96jzn981deono0qtt4353wjnd"); // GD_drawing(auxg)->dpi = GD_drawing(g)->dpi;
+UNSUPPORTED("am2ry0w98859w4vlnhjmoegj2"); // GD_charset(auxg) = GD_charset (g);
+UNSUPPORTED("8qqdurbqk0iszxbs1xz13bx72"); // if (GD_flip(g))
+UNSUPPORTED("dldh0wwkfscuwx8vmqd78zne6"); // (GD_rankdir2(auxg) = 0);
+UNSUPPORTED("div10atae09n36x269sl208r1"); // else
+UNSUPPORTED("a1gxjxg6ob083fwqk6gac69va"); // (GD_rankdir2(auxg) = 1);
+UNSUPPORTED("94df1x35koj4u57phwmdtoipp"); // GD_nodesep(auxg) = GD_nodesep(g);
+UNSUPPORTED("m7a4df7fb58fj3qpf7ocrnth"); // GD_ranksep(auxg) = GD_ranksep(g);
+UNSUPPORTED("ehand70vpsfxy8xo2usw3sdpd"); // //copy node attrs to auxg
+UNSUPPORTED("ee6l5a5uekrqgzpa1tzzvn8lu"); // sym=agnxtattr(agroot(g),AGNODE,NULL); //get the first attr.
+UNSUPPORTED("e9gle5ohw021fnltrv101u94f"); // for (; sym; sym = agnxtattr(agroot(g),AGNODE,sym))
+UNSUPPORTED("4mgrl284otjjxa13ifyvsix9o"); // agattr (auxg, AGNODE,sym->name, sym->defval);
+UNSUPPORTED("8l0npxgg53xbodt3h5bsxaf1u"); // //copy edge attributes
+UNSUPPORTED("d0l2zhgn9atu49ot95sjvnjx7"); // sym=agnxtattr(agroot(g),AGEDGE,NULL); //get the first attr.
+UNSUPPORTED("2syhqyxjtl43g8k8nszcgv3qa"); // for (; sym; sym = agnxtattr(agroot(g),AGEDGE,sym))
+UNSUPPORTED("7ne23vf4nlppvlnjcbkj9xj7s"); // agattr (auxg, AGEDGE,sym->name, sym->defval);
+UNSUPPORTED("dbdwjxpzch7ieese5oq712h84"); // if (!agattr(auxg,AGEDGE, "headport", NULL))
+UNSUPPORTED("8e9itu32gwm54e46x9vefuuc"); // agattr(auxg,AGEDGE, "headport", "");
+UNSUPPORTED("8d6592shcigbk3cnbs3g6zd5o"); // if (!agattr(auxg,AGEDGE, "tailport", NULL))
+UNSUPPORTED("1afdsvho7rpgcscq77epwq7h0"); // agattr(auxg,AGEDGE, "tailport", "");
+UNSUPPORTED("8g7yfvh0djzbxpsk11iys8s73"); // setState (auxg, attr_state);
+UNSUPPORTED("84c7zokshe6lxrxoh1l48oh0b"); // return auxg;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 75bd23hms71i6w46oddi0v7c7
+// static void cleanupCloneGraph (graph_t* g, attr_state_t* attr_state)
+public static Object cleanupCloneGraph(Object... arg) {
+UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void
+UNSUPPORTED("8l276u9l2gpbol4c2u457ic4o"); // cleanupCloneGraph (graph_t* g, attr_state_t* attr_state)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("81hz17qm480gekbimxzqp5917"); // /* restore main graph syms */
+UNSUPPORTED("dyp7mrvrp7pgbjcxvjp3k0rb0"); // E_constr = attr_state->E_constr;
+UNSUPPORTED("8x6a3xddh4y42i73tahevx314"); // E_samehead = attr_state->E_samehead;
+UNSUPPORTED("cr53qmp35pahyiy1lksf7pc7o"); // E_sametail = attr_state->E_sametail;
+UNSUPPORTED("3x6ebo3n7gp5ys2ei418ehbmt"); // E_weight = attr_state->E_weight;
+UNSUPPORTED("1ho97fsth1t5vvxc5xlwbtvyp"); // E_minlen = attr_state->E_minlen;
+UNSUPPORTED("bfo2q1yt9zej3021f132mqwe6"); // E_fontcolor = attr_state->E_fontcolor;
+UNSUPPORTED("caxxsouex07crddgxredl1u2p"); // E_fontname = attr_state->E_fontname;
+UNSUPPORTED("etmu0sib2tphqwe1wujlnfrup"); // E_fontsize = attr_state->E_fontsize;
+UNSUPPORTED("6gb56lwdjjgzcqilrpq8m22ns"); // E_headclip = attr_state->E_headclip;
+UNSUPPORTED("7arkupsho8bk69qdlx5osz58q"); // E_headlabel = attr_state->E_headlabel;
+UNSUPPORTED("8dbqaxdoyj9z0pkuwsg9vl0eu"); // E_label = attr_state->E_label;
+UNSUPPORTED("k2wg526i4loudvbn7p6a8e68"); // E_label_float = attr_state->E_label_float;
+UNSUPPORTED("2tux1z7sjyb58ty6c0bvgfn7u"); // E_labelfontcolor = attr_state->E_labelfontcolor;
+UNSUPPORTED("exlraaiion456s8e3xwpxozb4"); // E_labelfontname = attr_state->E_labelfontname;
+UNSUPPORTED("31yhqytdbu2odz0oi3cudffo1"); // E_labelfontsize = attr_state->E_labelfontsize;
+UNSUPPORTED("frcohw4vy68cah25ckm1cobw"); // E_tailclip = attr_state->E_tailclip;
+UNSUPPORTED("2z89ojbnte8kwtr9jotk499fc"); // E_taillabel = attr_state->E_taillabel;
+UNSUPPORTED("3ujqfey1gvz17vmhn9w63qxob"); // E_xlabel = attr_state->E_xlabel;
+UNSUPPORTED("atq6bae3mv1qr8egljjfsrit6"); // N_height = attr_state->N_height;
+UNSUPPORTED("aiqf0nz6dfedq2jwgmajnranb"); // N_width = attr_state->N_width;
+UNSUPPORTED("dt3zktdkst02y23fr3owwe9b9"); // N_shape = attr_state->N_shape;
+UNSUPPORTED("6pul6vxncmyc96hnj7hoh9xlv"); // N_style = attr_state->N_style;
+UNSUPPORTED("bbr363noiuq4fiv6dc11hrgki"); // N_fontsize = attr_state->N_fontsize;
+UNSUPPORTED("5jr71bz21o8ex4piwuj7cyf35"); // N_fontname = attr_state->N_fontname;
+UNSUPPORTED("muitbco7ytv8yr71bth3vd45"); // N_fontcolor = attr_state->N_fontcolor;
+UNSUPPORTED("gz675ugjp8z2xgply33d6llr"); // N_label = attr_state->N_label;
+UNSUPPORTED("3l56ed3d2ocqttxq2mwcaxrs"); // N_xlabel = attr_state->N_xlabel;
+UNSUPPORTED("2fmh1t4tflmptq1d2wqygd7qt"); // N_showboxes = attr_state->N_showboxes;
+UNSUPPORTED("br7qgmqsjpzi772b9wc7g00x0"); // N_ordering = attr_state->N_ordering;
+UNSUPPORTED("cpjgwylhr8d4gvztykf36mf71"); // N_sides = attr_state->N_sides;
+UNSUPPORTED("dzvcridjcoqlimn9odmlcn9ao"); // N_peripheries = attr_state->N_peripheries;
+UNSUPPORTED("7wd3t9ok31e37hdqtnffwum66"); // N_skew = attr_state->N_skew;
+UNSUPPORTED("bkocxpinr1crae21mcidps0"); // N_orientation = attr_state->N_orientation;
+UNSUPPORTED("bni1bp9we328ofu8dqwnws3b8"); // N_distortion = attr_state->N_distortion;
+UNSUPPORTED("9ni0gtudygio7exe31uyvwwxy"); // N_fixed = attr_state->N_fixed;
+UNSUPPORTED("2ep79qyr9wgfu8hyateqngx4o"); // N_nojustify = attr_state->N_nojustify;
+UNSUPPORTED("77t5uu3931h080u18f50zr0qw"); // N_group = attr_state->N_group;
+UNSUPPORTED("1czw51da8yggj3mvb5v6dircs"); // G_ordering = attr_state->G_ordering;
+UNSUPPORTED("60kkiysc7uy667s1kr04csskc"); // State = attr_state->State;
+UNSUPPORTED("9wfeu3yikah30i1eq789pb1dc"); // free (attr_state);
+UNSUPPORTED("2tv8es032rxzavamw0dgvm53h"); // dot_cleanup(g);
+UNSUPPORTED("ego3r1tvwrpv2hie8y9p8vq4z"); // agclose(g);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 19tqa2ag8idq1y6l3zslax8e8
+// static node_t* cloneNode (graph_t* g, node_t* orign, int flipped)
+public static Object cloneNode(Object... arg) {
+UNSUPPORTED("b9dd3satxbh59hljdxzcxecc"); // static node_t*
+UNSUPPORTED("o807sh2podu4gxrp6mweyg3p"); // cloneNode (graph_t* g, node_t* orign, int flipped)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("9mlzre34kwhn9wm44mck7e8li"); // node_t* n = agnode(g, agnameof(orign),1);
+UNSUPPORTED("21wqfabmz2qk7g2vnunyyw1n8"); // agbindrec(n, "Agnodeinfo_t", sizeof(Agnodeinfo_t), NOT(0));
+UNSUPPORTED("80tteudx6zbkyxy4erhh0fqeo"); // agcopyattr (orign, n);
+UNSUPPORTED("65o4lsnpkxraq4wik0gzbv3g3"); // if (shapeOf(orign) == SH_RECORD) {
+UNSUPPORTED("7w0wn4e9gizbzrsqcre4pnx7"); // int lbllen = strlen(ND_label(orign)->text);
+UNSUPPORTED("3avq2zh3wpi2nrhofz3l9esev"); // char* buf = (char*)gmalloc((lbllen+3)*sizeof(char));
+UNSUPPORTED("bbilsao6wizinl5kripcoya9d"); // sprintf (buf, "{%s}", ND_label(orign)->text);
+UNSUPPORTED("e93wd087tiy2p8rvqlme93ynm"); // agset (n, "label", buf);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("69hc24ic55i66g8tf2ne42327"); // return n;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 eqzwnj9u1k6ij1842mph3kly9
+// static edge_t* cloneEdge (graph_t* g, node_t* tn, node_t* hn, edge_t* orig)
+public static Object cloneEdge(Object... arg) {
+UNSUPPORTED("adyfsyiyu158mwhrtm33biik2"); // static edge_t*
+UNSUPPORTED("cpg8ogbdq9zzrqiadh2q271ky"); // cloneEdge (graph_t* g, node_t* tn, node_t* hn, edge_t* orig)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("mdnixwzb9bm22acv2mbc4yo2"); // edge_t* e = agedge(g, tn, hn,NULL,1);
+UNSUPPORTED("ce403szny1a2xoli6uh7ocakq"); // /* for (; ED_edge_type(orig) != NORMAL; orig = ED_to_orig(orig)); */
+UNSUPPORTED("554nt9t4qnutd0wixwbpok522"); // agbindrec(e, "Agedgeinfo_t", sizeof(Agedgeinfo_t), NOT(0));
+UNSUPPORTED("6yfr23jllhpfychz887mht80b"); // agcopyattr (orig, e);
+UNSUPPORTED("4v614d3uabme2jyn0anuritbb"); // /*
+UNSUPPORTED("jgkgn8228j52jq4wc7yo2q8t"); // if (orig->tail != ND_alg(tn)) {
+UNSUPPORTED("86dayio2rrehbyot92z4xh4d1"); // char* hdport = agget (orig, HEAD_ID);
+UNSUPPORTED("39vbjr08q96wugxyva077qpok"); // char* tlport = agget (orig, TAIL_ID);
+UNSUPPORTED("3z0livr6yj8gkkuxtvqwrqy95"); // agset (e, TAIL_ID, (hdport ? hdport : ""));
+UNSUPPORTED("dilecd9q5c2tj0pnl7tfwgixx"); // agset (e, HEAD_ID, (tlport ? tlport : ""));
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("bnetqzovnscxile7ao44kc0qd"); // */
+UNSUPPORTED("2bswif6w6ot01ynlvkimntfly"); // return e;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 3zb2qrqaqzr6n3m7dgxp4pmrp
+// static pointf transformf (pointf p, pointf del, int flip)
+public static Object transformf(Object... arg) {
+UNSUPPORTED("2zzd7mrm2u540dwuyzehozffj"); // static pointf
+UNSUPPORTED("a59oomtgi9wbd42kpsaaref6e"); // transformf (pointf p, pointf del, int flip)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("9wlzvfxuhvsgkkq6lvlrw01d2"); // if (flip) {
+UNSUPPORTED("3vhnqvj1whk5vk9hofkhjtksr"); // double i = p.x;
+UNSUPPORTED("9sla4yejg4e4tlklijoil9k4u"); // p.x = p.y;
+UNSUPPORTED("688l858wkw5j2uqosjyesr15h"); // p.y = -i;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("890s36h0fh77q487p72cjtyz"); // return add_pointf(p, del);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bmsa24i3avg14po4sp17yh89k
+// static int edgelblcmpfn(edge_t** ptr0, edge_t** ptr1)
+public static int edgelblcmpfn(__ptr__ ptr0, __ptr__ ptr1) {
+ENTERING("bmsa24i3avg14po4sp17yh89k","edgelblcmpfn");
+try {
+ Agedge_s e0, e1;
+ final __struct__<pointf> sz0 = JUtils.from(pointf.class), sz1 = JUtils.from(pointf.class);
+ e0 = (Agedge_s) ptr0.getPtr();
+ e1 = (Agedge_s) ptr1.getPtr();
+ if (ED_label(e0)!=null) {
+ if (ED_label(e1)!=null) {
+ sz0.___(ED_label(e0).getStruct("dimen"));
+ sz1.___(ED_label(e1).getStruct("dimen"));
+ if (sz0.getDouble("x") > sz1.getDouble("x")) return -1;
+ else if (sz0.getDouble("x") < sz1.getDouble("x")) return 1;
+ else if (sz0.getDouble("y") > sz1.getDouble("y")) return -1;
+ else if (sz0.getDouble("y") < sz1.getDouble("y")) return 1;
+ else return 0;
+ }
+ else
+ return -1;
+ }
+ else if (ED_label(e1)!=null) {
+ return 1;
+ }
+ else
+ return 0;
+} finally {
+LEAVING("bmsa24i3avg14po4sp17yh89k","edgelblcmpfn");
+}
+}
+
+
+
+
+//3 3xmylrnypvoqrj2yrxnomsj5k
+// static void makeSimpleFlatLabels (node_t* tn, node_t* hn, edge_t** edges, int ind, int cnt, int et, int n_lbls)
+public static void makeSimpleFlatLabels(Agnode_s tn, Agnode_s hn, __ptr__ edges, int ind, int cnt, int et, int n_lbls) {
+ENTERING("3xmylrnypvoqrj2yrxnomsj5k","makeSimpleFlatLabels");
+try {
+ pointf ps;
+ final __struct__<Ppoly_t> poly = JUtils.from(Ppoly_t.class);
+ int pn[] = new int[1];
+ Agedge_s e = (Agedge_s) edges.plus(ind).getPtr();
+ final __array_of_struct__ points = __array_of_struct__.malloc(pointf.class, 10);
+ final __struct__<pointf> tp = JUtils.from(pointf.class), hp = JUtils.from(pointf.class);
+ int i, pointn;
+ double leftend, rightend, ctrx=0, ctry=0, miny, maxy;
+ double uminx=0, umaxx=0;
+ double lminx=0, lmaxx=0;
+ __ptr__ earray = zmalloc(sizeof_starstar_empty(Agedge_s.class, cnt));
+ for (i = 0; i < cnt; i++) {
+ earray.plus(i).setPtr(edges.plus(ind + i).getPtr());
+ }
+ qsort(earray,
+ cnt,
+ sizeof(earray.plus(0)),
+ function(dotsplines__c.class, "edgelblcmpfn"));
+ tp.___(add_pointf(ND_coord(tn), ED_tail_port(e).getStruct("p")));
+ hp.___(add_pointf(ND_coord(hn), ED_head_port(e).getStruct("p")));
+ leftend = tp.getDouble("x")+ND_rw(tn);
+ rightend = hp.getDouble("x")-ND_lw(hn);
+ ctrx = (leftend + rightend)/2.0;
+ /* do first edge */
+ e = (Agedge_s) earray.plus(0).getPtr();
+ pointn = 0;
+ points.plus(pointn++).setStruct(tp);
+ points.plus(pointn++).setStruct(tp);
+ points.plus(pointn++).setStruct(hp);
+ points.plus(pointn++).setStruct(hp);
+ clip_and_install(e, aghead(e), points.asPtr(), pointn, Z.z().sinfo.amp());
+ ED_label(e).getStruct("pos").setDouble("x", ctrx);
+ ED_label(e).getStruct("pos").setDouble("y", tp.getDouble("y") + (ED_label(e).getStruct("dimen").getDouble("y")+6)/2.0);
+ ED_label(e).setBoolean("set", NOT(false));
+ miny = tp.getDouble("y") + 6/2.0;
+ maxy = miny + ED_label(e).getStruct("dimen").getDouble("y");
+ uminx = ctrx - (ED_label(e).getStruct("dimen").getDouble("x"))/2.0;
+ umaxx = ctrx + (ED_label(e).getStruct("dimen").getDouble("x"))/2.0;
+ for (i = 1; i < n_lbls; i++) {
+ e = (Agedge_s) earray.plus(i).getPtr();
+ if (i%2!=0) { /* down */
+ if (i == 1) {
+ lminx = ctrx - (ED_label(e).getStruct("dimen").getDouble("x"))/2.0;
+ lmaxx = ctrx + (ED_label(e).getStruct("dimen").getDouble("x"))/2.0;
+ }
+ miny -= 6 + ED_label(e).getStruct("dimen").getDouble("y");
+ points.plus(0).setStruct(tp);
+ points.plus(1).setDouble("x", tp.getDouble("x"));
+ points.plus(1).setDouble("y", miny - 6);
+ points.plus(2).setDouble("x", hp.getDouble("x"));
+ points.plus(2).setDouble("y", points.plus(1).getDouble("y"));
+ points.plus(3).setStruct(hp);
+ points.plus(4).setDouble("x", lmaxx);
+ points.plus(4).setDouble("y", hp.getDouble("y"));
+ points.plus(5).setDouble("x", lmaxx);
+ points.plus(5).setDouble("y", miny);
+ points.plus(6).setDouble("x", lminx);
+ points.plus(6).setDouble("y", miny);
+ points.plus(7).setDouble("x", lminx);
+ points.plus(7).setDouble("y", tp.getDouble("y"));
+ ctry = miny + (ED_label(e).getStruct("dimen").getDouble("y"))/2.0;
+ }
+ else { /* up */
+UNSUPPORTED("7owdudualx55z2cnm9x3iio0w"); // points[0] = tp;
+UNSUPPORTED("43w0zont6q3y1axlcy96rzm5x"); // points[1].x = uminx;
+UNSUPPORTED("285u4l65puy5nr3pgq6acl4i2"); // points[1].y = tp.y;
+UNSUPPORTED("uctdrwzmec4w6vmirs9on197"); // points[2].x = uminx;
+UNSUPPORTED("d9b8e2upja8koam9memys7nj1"); // points[2].y = maxy;
+UNSUPPORTED("e8a8ucdpq7sgmbi3qyldleb1s"); // points[3].x = umaxx;
+UNSUPPORTED("d7xd9vzbdbezltrxsp9a3byuc"); // points[3].y = maxy;
+UNSUPPORTED("59abeyxxk9ow1g6m45t4ahih7"); // points[4].x = umaxx;
+UNSUPPORTED("2lzgl5468xguophz9d5wyer2x"); // points[4].y = hp.y;
+UNSUPPORTED("41u0uroraw4xanvpgg6l74kyh"); // points[5].x = hp.x;
+UNSUPPORTED("cwkk5bnko3e1udrx4cb720zss"); // points[5].y = hp.y;
+UNSUPPORTED("eev7hf3617k74bnq18uiedyb0"); // points[6].x = hp.x;
+UNSUPPORTED("aqxt1dvgfq5zcptjwgx1b3mmq"); // points[6].y = maxy + 6;
+UNSUPPORTED("5s3o04yf5lzca6ruuygfxngj2"); // points[7].x = tp.x;
+UNSUPPORTED("56zheeat0b8mo4uvlcbvgbu80"); // points[7].y = maxy + 6;
+UNSUPPORTED("ehcig8trxc4ble6pcochubv7z"); // ctry = maxy + (ED_label(e)->dimen.y)/2.0 + 6;
+UNSUPPORTED("e2zgxycgqefryde9nbv6cqz1u"); // maxy += ED_label(e)->dimen.y + 6;
+ }
+ poly.setInt("pn", 8);
+ poly.setPtr("ps", points.asPtr());
+ ps = simpleSplineRoute (tp, hp, poly, pn, et == (3 << 1));
+ if (pn[0] == 0) return;
+ ED_label(e).getStruct("pos").setDouble("x", ctrx);
+ ED_label(e).getStruct("pos").setDouble("y", ctry);
+ ED_label(e).setBoolean("set", NOT(false));
+ clip_and_install(e, aghead(e), ps, pn[0], Z.z().sinfo.amp());
+ }
+ /* edges with no labels */
+ for (; i < cnt; i++) {
+ e = (Agedge_s) earray.plus(i).getPtr();
+ if (i%2!=0) { /* down */
+ if (i == 1) {
+ lminx = (2*leftend + rightend)/3.0;
+ lmaxx = (leftend + 2*rightend)/3.0;
+ }
+ miny -= 6;
+ points.plus(0).setStruct(tp);
+ points.plus(1).setDouble("x", tp.getDouble("x"));
+ points.plus(1).setDouble("y", miny - 6);
+ points.plus(2).setDouble("x", hp.getDouble("x"));
+ points.plus(2).setDouble("y", points.plus(1).getDouble("y"));
+ points.plus(3).setStruct(hp);
+ points.plus(4).setDouble("x", lmaxx);
+ points.plus(4).setDouble("y", hp.getDouble("y"));
+ points.plus(5).setDouble("x", lmaxx);
+ points.plus(5).setDouble("y", miny);
+ points.plus(6).setDouble("x", lminx);
+ points.plus(6).setDouble("y", miny);
+ points.plus(7).setDouble("x", lminx);
+ points.plus(7).setDouble("y", tp.getDouble("y"));
+ }
+ else { /* up */
+UNSUPPORTED("7owdudualx55z2cnm9x3iio0w"); // points[0] = tp;
+UNSUPPORTED("43w0zont6q3y1axlcy96rzm5x"); // points[1].x = uminx;
+UNSUPPORTED("285u4l65puy5nr3pgq6acl4i2"); // points[1].y = tp.y;
+UNSUPPORTED("uctdrwzmec4w6vmirs9on197"); // points[2].x = uminx;
+UNSUPPORTED("d9b8e2upja8koam9memys7nj1"); // points[2].y = maxy;
+UNSUPPORTED("e8a8ucdpq7sgmbi3qyldleb1s"); // points[3].x = umaxx;
+UNSUPPORTED("d7xd9vzbdbezltrxsp9a3byuc"); // points[3].y = maxy;
+UNSUPPORTED("59abeyxxk9ow1g6m45t4ahih7"); // points[4].x = umaxx;
+UNSUPPORTED("2lzgl5468xguophz9d5wyer2x"); // points[4].y = hp.y;
+UNSUPPORTED("41u0uroraw4xanvpgg6l74kyh"); // points[5].x = hp.x;
+UNSUPPORTED("cwkk5bnko3e1udrx4cb720zss"); // points[5].y = hp.y;
+UNSUPPORTED("eev7hf3617k74bnq18uiedyb0"); // points[6].x = hp.x;
+UNSUPPORTED("aqxt1dvgfq5zcptjwgx1b3mmq"); // points[6].y = maxy + 6;
+UNSUPPORTED("5s3o04yf5lzca6ruuygfxngj2"); // points[7].x = tp.x;
+UNSUPPORTED("56zheeat0b8mo4uvlcbvgbu80"); // points[7].y = maxy + 6;
+UNSUPPORTED("7un2qk34mmmhqi296vl50bacs"); // maxy += + 6;
+ }
+ poly.setInt("pn", 8);
+ poly.setPtr("ps", points.asPtr());
+ ps = simpleSplineRoute (tp, hp, poly, pn, et == (3 << 1));
+ if (pn[0] == 0) return;
+ clip_and_install(e, aghead(e), ps, pn[0], Z.z().sinfo.amp());
+ }
+ Memory.free (earray);
+} finally {
+LEAVING("3xmylrnypvoqrj2yrxnomsj5k","makeSimpleFlatLabels");
+}
+}
+
+
+
+
+//3 8kqyzk43ovc2sq6jegua6ytp
+// static void makeSimpleFlat (node_t* tn, node_t* hn, edge_t** edges, int ind, int cnt, int et)
+public static void makeSimpleFlat(Agnode_s tn, Agnode_s hn, __ptr__ edges, int ind, int cnt, int et) {
+ENTERING("8kqyzk43ovc2sq6jegua6ytp","makeSimpleFlat");
+try {
+ Agedge_s e = (Agedge_s) edges.plus(ind).getPtr();
+ final __array_of_struct__ points = __array_of_struct__.malloc(pointf.class, 10);
+ final __struct__<pointf> tp = JUtils.from(pointf.class), hp = JUtils.from(pointf.class);
+ int i, pointn;
+ double stepy, dy;
+ tp.___(add_pointf(ND_coord(tn), ED_tail_port(e).getStruct("p")));
+ hp.___(add_pointf(ND_coord(hn), ED_head_port(e).getStruct("p")));
+ stepy = (cnt > 1) ? ND_ht(tn) / (double)(cnt - 1) : 0.;
+ dy = tp.getDouble("y") - ((cnt > 1) ? ND_ht(tn) / 2. : 0.);
+ for (i = 0; i < cnt; i++) {
+ e = (Agedge_s) edges.plus(ind + i).getPtr();
+ pointn = 0;
+ if ((et == (5 << 1)) || (et == (1 << 1))) {
+ points.plus(pointn++).setStruct(tp);
+ points.plus(pointn++).setStruct(pointfof((2 * tp.getDouble("x") + hp.getDouble("x")) / 3, dy));
+ points.plus(pointn++).setStruct(pointfof((2 * hp.getDouble("x") + tp.getDouble("x")) / 3, dy));
+ points.plus(pointn++).setStruct(hp);
+ }
+ else { /* ET_PLINE */
+UNSUPPORTED("cai7diqq01v8vb92u4mx1xh38"); // points[pointn++] = tp;
+UNSUPPORTED("cai7diqq01v8vb92u4mx1xh38"); // points[pointn++] = tp;
+UNSUPPORTED("bnd7kao912fmo940u1gz3cmws"); // points[pointn++] = pointfof((2 * tp.x + hp.x) / 3, dy);
+UNSUPPORTED("bnd7kao912fmo940u1gz3cmws"); // points[pointn++] = pointfof((2 * tp.x + hp.x) / 3, dy);
+UNSUPPORTED("bnd7kao912fmo940u1gz3cmws"); // points[pointn++] = pointfof((2 * tp.x + hp.x) / 3, dy);
+UNSUPPORTED("akir2i0ddpv2ombgdzzs9qqqa"); // points[pointn++] = pointfof((2 * hp.x + tp.x) / 3, dy);
+UNSUPPORTED("akir2i0ddpv2ombgdzzs9qqqa"); // points[pointn++] = pointfof((2 * hp.x + tp.x) / 3, dy);
+UNSUPPORTED("akir2i0ddpv2ombgdzzs9qqqa"); // points[pointn++] = pointfof((2 * hp.x + tp.x) / 3, dy);
+UNSUPPORTED("59cwjy3j5e0igp278migykzi"); // points[pointn++] = hp;
+UNSUPPORTED("59cwjy3j5e0igp278migykzi"); // points[pointn++] = hp;
+ }
+ dy += stepy;
+ clip_and_install(e, aghead(e), points.asPtr(), pointn, Z.z().sinfo.amp());
+ }
+} finally {
+LEAVING("8kqyzk43ovc2sq6jegua6ytp","makeSimpleFlat");
+}
+}
+
+
+
+
+//3 bhnjospwghq4plid12757c928
+// static void make_flat_adj_edges(graph_t* g, path* P, edge_t** edges, int ind, int cnt, edge_t* e0, int et)
+public static void make_flat_adj_edges(Agraph_s g, path P, __ptr__ edges, int ind, int cnt, Agedge_s e0, int et) {
+ENTERING("bhnjospwghq4plid12757c928","make_flat_adj_edges");
+try {
+ Agnode_s n;
+ Agnode_s tn, hn;
+ Agedge_s e;
+ int labels = 0, ports = 0;
+ Agraph_s auxg;
+ Agraph_s subg;
+ Agnode_s auxt, auxh;
+ Agedge_s auxe;
+ int i, j, midx, midy, leftx, rightx;
+ final __struct__<pointf> del = JUtils.from(pointf.class);
+ Agedge_s hvye = null;
+ attr_state_t attrs;
+ tn = agtail(e0); hn = aghead(e0);
+ for (i = 0; i < cnt; i++) {
+ e = (Agedge_s) edges.plus(ind + i).getPtr();
+ if (ED_label(e)!=null) labels++;
+ if (ED_tail_port(e).defined!=0 || ED_head_port(e).defined!=0) ports = 1;
+ }
+ if (ports == 0) {
+ /* flat edges without ports and labels can go straight left to right */
+ if (labels == 0) {
+ makeSimpleFlat (tn, hn, edges, ind, cnt, et);
+ }
+ /* flat edges without ports but with labels take more work */
+ else {
+ makeSimpleFlatLabels (tn, hn, edges, ind, cnt, et, labels);
+ }
+ return;
+ }
+UNSUPPORTED("3ua0mgcwxnpymnpiv77owaur2"); // attrs = (attr_state_t*)zmalloc(sizeof(attr_state_t));
+UNSUPPORTED("5qcpchn65culafc5t2ibioksb"); // auxg = cloneGraph (g, attrs);
+UNSUPPORTED("cwolismpef6l1w4xj5etx8w09"); // subg = agsubg (auxg, "xxx",1);
+UNSUPPORTED("eocu0fte9egz381w3t8y5m64t"); // agbindrec(subg, "Agraphinfo_t", sizeof(Agraphinfo_t), NOT(0));
+UNSUPPORTED("er19m8huvnjjn1v6rreiisdf6"); // agset (subg, "rank", "source");
+UNSUPPORTED("du7zwfglureqnv5g2wiammuuu"); // rightx = ND_coord(hn).x;
+UNSUPPORTED("5qa24lmumrg29fbtl0fo4d4z1"); // leftx = ND_coord(tn).x;
+UNSUPPORTED("b2x6j7m1cmmkcmdl5jo9wn0ap"); // if (GD_flip(g)) {
+UNSUPPORTED("2elvc001uux0vbe7sv4098e0c"); // node_t* n;
+UNSUPPORTED("6m8k99c09zmhwgcdsgo33dugz"); // n = tn;
+UNSUPPORTED("cenlfgoeymhe1am5z6632xniq"); // tn = hn;
+UNSUPPORTED("cp2gf6c1xawd2yjbqerw98we3"); // hn = n;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("1e98fnf9lsk7hwgjt70gh5r55"); // auxt = cloneNode(subg, tn, GD_flip(g));
+UNSUPPORTED("a4xa8i1nw83hhnknv84280z00"); // auxh = cloneNode(auxg, hn, GD_flip(g));
+UNSUPPORTED("1psokm6w9e7qw7fm2g1cayuk7"); // for (i = 0; i < cnt; i++) {
+UNSUPPORTED("8hwholxjp08y4q0zbb561684q"); // e = edges[ind + i];
+UNSUPPORTED("b3w40fpgfj0j66yi6j582thq2"); // for (; ED_edge_type(e) != 0; e = ED_to_orig(e));
+UNSUPPORTED("bcu59ji1apn0rvv7aisl6e4pw"); // if (agtail(e) == tn)
+UNSUPPORTED("4o3mq2ztiyxlbkpgcyygj4lny"); // auxe = cloneEdge (auxg, auxt, auxh, e);
+UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else
+UNSUPPORTED("3a7m578mxun4c8zv0jurzh7ox"); // auxe = cloneEdge (auxg, auxh, auxt, e);
+UNSUPPORTED("e6khamu7fhu5m7il9r2v06mui"); // ED_alg(e) = auxe;
+UNSUPPORTED("64u9xrw8iwy3mtuupoktw7xoz"); // if (!hvye && !ED_tail_port(e).defined && !ED_head_port(e).defined) {
+UNSUPPORTED("6t23nfzzldtl419g582pr0wjn"); // hvye = auxe;
+UNSUPPORTED("3fi2uxwkmau5664gnhzyosan5"); // ED_alg(hvye) = e;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("co4n3cv6ybhgvm341r3re61vu"); // if (!hvye) {
+UNSUPPORTED("a0sxhnruv0ip65j05wt7dciak"); // hvye = agedge (auxg, auxt, auxh,NULL,1);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("26l323zwxztuc6sfnh36x7i9f"); // agxset (hvye, E_weight, "10000");
+UNSUPPORTED("4pj2d4pwf7wi9fcu4v0byk83z"); // GD_gvc(auxg) = GD_gvc(g);
+UNSUPPORTED("b6dpjp9wgjzgoy0tq7b9kms74"); // GD_dotroot(auxg) = auxg;
+UNSUPPORTED("e08t9bx8ldb1d5e0582wg82sx"); // setEdgeType (auxg, et);
+UNSUPPORTED("8y4433lgybq35f4t7viqsvz5v"); // dot_init_node_edge(auxg);
+UNSUPPORTED("13c2nt4jwumpvtwudz38a4sb3"); // dot_rank(auxg, 0);
+UNSUPPORTED("6onnznyz9fof6r8we5z1e4r63"); // dot_mincross(auxg, 0);
+UNSUPPORTED("4ry85qx5xmahkm0mdv9s65azo"); // dot_position(auxg, 0);
+UNSUPPORTED("9921qakdgil2jvrvinke44xsz"); // /* reposition */
+UNSUPPORTED("ang8wy78872hvqkzvgfjwqwfl"); // midx = (ND_coord(tn).x - ND_rw(tn) + ND_coord(hn).x + ND_lw(hn))/2;
+UNSUPPORTED("2r2ywte92l423tbcdfvbhz3zh"); // midy = (ND_coord(auxt).x + ND_coord(auxh).x)/2;
+UNSUPPORTED("b8juh1dggb6sz4d9df42i150k"); // for (n = GD_nlist(auxg); n; n = ND_next(n)) {
+UNSUPPORTED("4prtyy13ox1fif8vil3g86g87"); // if (n == auxt) {
+UNSUPPORTED("7gvpia4yo3bfvh5dl7uwr3dbe"); // ND_coord(n).y = rightx;
+UNSUPPORTED("2zsspnn0nfrdf9fx8sh3ld8j4"); // ND_coord(n).x = midy;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("ba2aaoh9ujy4ww9luial39sya"); // else if (n == auxh) {
+UNSUPPORTED("aoy1ze6hhjuym44mkasdt19qp"); // ND_coord(n).y = leftx;
+UNSUPPORTED("2zsspnn0nfrdf9fx8sh3ld8j4"); // ND_coord(n).x = midy;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("80o8q2qh1hr671ladbyqzglnt"); // else ND_coord(n).y = midx;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("48hn94qz2y2kb6lqc3462vlco"); // dot_sameports(auxg);
+UNSUPPORTED("bglhuc9grqkk9ozb97oeh0m3b"); // _dot_splines(auxg, 0);
+UNSUPPORTED("euvfot8f7xxnibd223qgsylew"); // dotneato_postprocess(auxg);
+UNSUPPORTED("4mg60pszj0s1anwg8zp0tq0ra"); // /* copy splines */
+UNSUPPORTED("b2x6j7m1cmmkcmdl5jo9wn0ap"); // if (GD_flip(g)) {
+UNSUPPORTED("baukf0b2l91bkgnfdc04rvuxe"); // del.x = ND_coord(tn).x - ND_coord(auxt).y;
+UNSUPPORTED("96sq686mw9bvj7dli7wb241au"); // del.y = ND_coord(tn).y + ND_coord(auxt).x;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else {
+UNSUPPORTED("bxg8i1hqms0izrryxh2at6p7b"); // del.x = ND_coord(tn).x - ND_coord(auxt).x;
+UNSUPPORTED("3xqgvdcxmu8e4eqtnhaa256tk"); // del.y = ND_coord(tn).y - ND_coord(auxt).y;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("1psokm6w9e7qw7fm2g1cayuk7"); // for (i = 0; i < cnt; i++) {
+UNSUPPORTED("47ogn0fae1yuy3kefpawcgcmx"); // bezier* auxbz;
+UNSUPPORTED("4mujfxtr0wy7m1rbm57rwigo4"); // bezier* bz;
+UNSUPPORTED("8hwholxjp08y4q0zbb561684q"); // e = edges[ind + i];
+UNSUPPORTED("b3w40fpgfj0j66yi6j582thq2"); // for (; ED_edge_type(e) != 0; e = ED_to_orig(e));
+UNSUPPORTED("3ii7nnxg3x8jpdk6lcijbizvf"); // auxe = (edge_t*)ED_alg(e);
+UNSUPPORTED("5rc7uvn4xqfetekcci1uwri5v"); // if ((auxe == hvye) & !ED_alg(auxe)) continue; /* pseudo-edge */
+UNSUPPORTED("52vy3jbu67nebznqkhxxqthih"); // auxbz = ED_spl(auxe)->list;
+UNSUPPORTED("azr1tv8blnu3i6b7wstpqv2tc"); // bz = new_spline(e, auxbz->size);
+UNSUPPORTED("df84ie4egl6l1i82tz1zp7hg"); // bz->sflag = auxbz->sflag;
+UNSUPPORTED("49bzonc32mbuchcsmw7csexdw"); // bz->sp = transformf(auxbz->sp, del, GD_flip(g));
+UNSUPPORTED("9g1glpjjy5wmh7dyr6u0nb2cn"); // bz->eflag = auxbz->eflag;
+UNSUPPORTED("44tftrsdjjuh1qjmxjpysmee3"); // bz->ep = transformf(auxbz->ep, del, GD_flip(g));
+UNSUPPORTED("w0xl6ghxoii2ze2xmbbunv4d"); // for (j = 0; j < auxbz->size; ) {
+UNSUPPORTED("22zm6ljvhpz7j2kiqee31nx61"); // pointf cp[4];
+UNSUPPORTED("4c88sva3ojadip5w3ehu782tp"); // cp[0] = bz->list[j] = transformf(auxbz->list[j], del, GD_flip(g));
+UNSUPPORTED("5jqtd9htl25cd3if3pjtl8dpo"); // j++;
+UNSUPPORTED("duk541biqshfomah8rlxeyigr"); // if ( j >= auxbz->size )
+UNSUPPORTED("9ekmvj13iaml5ndszqyxa8eq"); // break;
+UNSUPPORTED("2qrbm7mhicvoxzk91h9x3gq64"); // cp[1] = bz->list[j] = transformf(auxbz->list[j], del, GD_flip(g));
+UNSUPPORTED("5jqtd9htl25cd3if3pjtl8dpo"); // j++;
+UNSUPPORTED("f4x9unnnofgnvy91ejtm90kw"); // cp[2] = bz->list[j] = transformf(auxbz->list[j], del, GD_flip(g));
+UNSUPPORTED("5jqtd9htl25cd3if3pjtl8dpo"); // j++;
+UNSUPPORTED("6pldfj31dg88qzsa012v8auxn"); // cp[3] = transformf(auxbz->list[j], del, GD_flip(g));
+UNSUPPORTED("2xvehdctlpogpd7xhdf1pku00"); // update_bb_bz(&GD_bb(g), cp);
+UNSUPPORTED("4mhlpjofolwivhm0tl8cxznly"); // }
+UNSUPPORTED("8bokoh0vcnmvjcahn7de1z0kd"); // if (ED_label(e)) {
+UNSUPPORTED("8ido4wfhvlqvczqfq5xz33kak"); // ED_label(e)->pos = transformf(ED_label(auxe)->pos, del, GD_flip(g));
+UNSUPPORTED("3tkba5lhpnujfu8lcz8lewsyn"); // ED_label(e)->set = NOT(0);
+UNSUPPORTED("c62p0r1jj71ceakgzrv2gorvu"); // updateBB(g, ED_label(e));
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("22prbnbyxmapn1fcer1sktez7"); // cleanupCloneGraph (auxg, attrs);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+} finally {
+LEAVING("bhnjospwghq4plid12757c928","make_flat_adj_edges");
+}
+}
+
+
+
+
+//3 fybar4mljnmkh3kure5k1eod
+// static void makeFlatEnd (graph_t* g, spline_info_t* sp, path* P, node_t* n, edge_t* e, pathend_t* endp, boolean isBegin)
+public static void makeFlatEnd(Agraph_s g, spline_info_t sp, path P, Agnode_s n, Agedge_s e, pathend_t endp, boolean isBegin) {
+ENTERING("fybar4mljnmkh3kure5k1eod","makeFlatEnd");
+try {
+ final ST_boxf b = new ST_boxf();
+ b.___(maximal_bbox(g, sp, n, null, e));
+ endp.setStruct("nb", b);
+ endp.setInt("sidemask", 1<<2);
+ if (isBegin) beginpath(P, e, 2, endp, false);
+ else endpath(P, e, 2, endp, false);
+ b.UR.y = ((ST_boxf)endp.getArrayOfStruct("boxes").plus(endp.getInt("boxn") - 1).getStruct()).UR.y;
+ b.LL.y = ((ST_boxf)endp.getArrayOfStruct("boxes").plus(endp.getInt("boxn") - 1).getStruct()).LL.y;
+ b.___(makeregularend((ST_boxf) b, (1<<2), ND_coord(n).getDouble("y") + GD_rank(g).plus(ND_rank(n)).getDouble("ht2")));
+ if (b.LL.x < b.UR.x && b.LL.y < b.UR.y)
+UNSUPPORTED("cmjm4y40vf7wklmgz0ae4k36v"); // endp->boxes[endp->boxn++] = b;
+} finally {
+LEAVING("fybar4mljnmkh3kure5k1eod","makeFlatEnd");
+}
+}
+
+
+
+
+//3 rfro0b2nsukdjenux3f6osgj
+// static void makeBottomFlatEnd (graph_t* g, spline_info_t* sp, path* P, node_t* n, edge_t* e, pathend_t* endp, boolean isBegin)
+public static Object makeBottomFlatEnd(Object... arg) {
+UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void
+UNSUPPORTED("8ai1jk8aigoqod7sj7pw1phw3"); // makeBottomFlatEnd (graph_t* g, spline_info_t* sp, path* P, node_t* n, edge_t* e,
+UNSUPPORTED("25ij2tn6de7b481tpf1ac644s"); // pathend_t* endp, boolean isBegin)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("458vjrt5zjt6am715aiuxdlpo"); // b = endp->nb = maximal_bbox(g, sp, n, NULL, e);
+UNSUPPORTED("9wzfokn3t7zckgoaxgywy6cbz"); // endp->sidemask = (1<<0);
+UNSUPPORTED("c3u0b2z8mb4le2v1g6q8amjt"); // if (isBegin) beginpath(P, e, 2, endp, 0);
+UNSUPPORTED("1e0zyjb03r85tgqddfnlk9e9"); // else endpath(P, e, 2, endp, 0);
+UNSUPPORTED("7pwqqvagpkzye4cdmjlbrmt7a"); // b.UR.y = endp->boxes[endp->boxn - 1].UR.y;
+UNSUPPORTED("1mefjjoto40rfwb1qhzvobhje"); // b.LL.y = endp->boxes[endp->boxn - 1].LL.y;
+UNSUPPORTED("4sn8dc58suk2d3oqlu13cr7ic"); // b = makeregularend(b, (1<<0), ND_coord(n).y - GD_rank(g)[ND_rank(n)].ht2);
+UNSUPPORTED("6xj9sv3inmj1rwtz76qp6p30n"); // if (b.LL.x < b.UR.x && b.LL.y < b.UR.y)
+UNSUPPORTED("cmjm4y40vf7wklmgz0ae4k36v"); // endp->boxes[endp->boxn++] = b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 w8ptjibydq995d2lexg85mku
+// static void make_flat_labeled_edge(graph_t* g, spline_info_t* sp, path* P, edge_t* e, int et)
+public static void make_flat_labeled_edge(Agraph_s g, spline_info_t sp, path P, Agedge_s e, int et) {
+ENTERING("w8ptjibydq995d2lexg85mku","make_flat_labeled_edge");
+try {
+ Agnode_s tn, hn, ln;
+ pointf ps = null;
+ final __struct__<pathend_t> tend = JUtils.from(pathend_t.class), hend = JUtils.from(pathend_t.class);
+ final ST_boxf lb = new ST_boxf();
+ int boxn, i, ydelta;
+ int pn[] = new int[1];
+ Agedge_s f;
+ final __array_of_struct__ points = __array_of_struct__.malloc(pointf.class, 7);
+ tn = agtail(e);
+ hn = aghead(e);
+ for (f = ED_to_virt(e); ED_to_virt(f)!=null; f = ED_to_virt(f));
+ ln = agtail(f);
+ ED_label(e).setStruct("pos", ND_coord(ln));
+ ED_label(e).setBoolean("set", NOT(false));
+ if (et == (1 << 1)) {
+UNSUPPORTED("ataaqkehwb736ts2x6olzqokx"); // pointf startp, endp, lp;
+UNSUPPORTED("48h6vk2e5niep4dmpua377248"); // startp = add_pointf(ND_coord(tn), ED_tail_port(e).p);
+UNSUPPORTED("8fokfn1629eyiqnzi7mey9o2q"); // endp = add_pointf(ND_coord(hn), ED_head_port(e).p);
+UNSUPPORTED("8zpih1olxdgp3sxk2br3lezzx"); // lp = ED_label(e)->pos;
+UNSUPPORTED("1sblcap44288tmc3cr80iqpj5"); // lp.y -= (ED_label(e)->dimen.y)/2.0;
+UNSUPPORTED("8ew9p3k3j0b33dnq0ntgbb6x8"); // points[1] = points[0] = startp;
+UNSUPPORTED("16h577fdghqtaeot735guew4e"); // points[2] = points[3] = points[4] = lp;
+UNSUPPORTED("9zjfovamhwwehbviws68s5woy"); // points[5] = points[6] = endp;
+UNSUPPORTED("68ojpcos92c96bc0i5ag1yb6v"); // ps = points;
+UNSUPPORTED("1uunj4jbr2uhiqxwor6rzmr3j"); // pn = 7;
+ }
+ else {
+ lb.LL.x = ND_coord(ln).getDouble("x") - ND_lw(ln);
+ lb.UR.x = ND_coord(ln).getDouble("x") + ND_rw(ln);
+ lb.UR.y = ND_coord(ln).getDouble("y") + ND_ht(ln)/2;
+ ydelta = (int)(ND_coord(ln).getDouble("y") - GD_rank(g).plus(ND_rank(tn)).getDouble("ht1") -
+ ND_coord(tn).getDouble("y") + GD_rank(g).plus(ND_rank(tn)).getDouble("ht2"));
+ ydelta = (int)(ydelta / 6.);
+ lb.LL.y = lb.UR.y - MAX(5.,ydelta);
+ boxn = 0;
+ makeFlatEnd (g, sp, P, tn, e, tend.amp(), NOT(false));
+ makeFlatEnd (g, sp, P, hn, e, hend.amp(), false);
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).LL.x = ((ST_boxf)tend.getArrayOfStruct("boxes").plus(tend.getInt("boxn") - 1).getStruct()).LL.x;
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).LL.y = ((ST_boxf)tend.getArrayOfStruct("boxes").plus(tend.getInt("boxn") - 1).getStruct()).UR.y;
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).UR.x = lb.LL.x;
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).UR.y = lb.LL.y;
+ boxn++;
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).LL.x = ((ST_boxf)tend.getArrayOfStruct("boxes").plus(tend.getInt("boxn") - 1).getStruct()).LL.x;
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).LL.y = lb.LL.y;
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).UR.x = ((ST_boxf)hend.getArrayOfStruct("boxes").plus(hend.getInt("boxn") - 1).getStruct()).UR.x;
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).UR.y = lb.UR.y;
+ boxn++;
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).LL.x = lb.UR.x;
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).UR.y = lb.LL.y;
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).LL.y = ((ST_boxf)hend.getArrayOfStruct("boxes").plus(hend.getInt("boxn") - 1).getStruct()).UR.y;
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).UR.x = ((ST_boxf)hend.getArrayOfStruct("boxes").plus(hend.getInt("boxn") - 1).getStruct()).UR.x;
+ boxn++;
+ for (i = 0; i < tend.getInt("boxn"); i++) add_box(P, (ST_boxf)tend.getArrayOfStruct("boxes").plus(i).getStruct());
+ for (i = 0; i < boxn; i++) add_box(P, (ST_boxf)Z.z().boxes.plus(i).getStruct());
+ for (i = hend.getInt("boxn") - 1; i >= 0; i--) add_box(P, (ST_boxf)hend.getArrayOfStruct("boxes").plus(i).getStruct());
+ if (et == (5 << 1)) ps = routesplines(P, pn);
+ else ps = routepolylines(P, pn);
+ if (pn[0] == 0) return;
+ }
+ clip_and_install(e, aghead(e), ps, pn[0], Z.z().sinfo.amp());
+} finally {
+LEAVING("w8ptjibydq995d2lexg85mku","make_flat_labeled_edge");
+}
+}
+
+
+
+
+//3 d97ga7gm34rs6r0jo494nhhuo
+// static void make_flat_bottom_edges(graph_t* g, spline_info_t* sp, path * P, edge_t ** edges, int ind, int cnt, edge_t* e, int splines)
+public static Object make_flat_bottom_edges(Object... arg) {
+UNSUPPORTED("e2z2o5ybnr5tgpkt8ty7hwan1"); // static void
+UNSUPPORTED("bkp39vt080is6iiqobsw59sk9"); // make_flat_bottom_edges(graph_t* g, spline_info_t* sp, path * P, edge_t ** edges, int
+UNSUPPORTED("2gat0ltxh7j57lspwmm9s9x7j"); // ind, int cnt, edge_t* e, int splines)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("5np4z3gp6cfmicyuz91nownp8"); // node_t *tn, *hn;
+UNSUPPORTED("3zgmm04g7gq65c57gco0id1eb"); // int j, i, r;
+UNSUPPORTED("5wdd96amz7w1sym59mg5nfj51"); // double stepx, stepy, vspace;
+UNSUPPORTED("63ozqzusft8gpehyaqrdjyr1"); // rank_t* nextr;
+UNSUPPORTED("7hps2kejtrotcphg5gymma43b"); // int pn;
+UNSUPPORTED("2rkzhui0essisp5zlw44vx4j9"); // pointf *ps;
+UNSUPPORTED("32b8td88encjfj6yd1sp8bef"); // pathend_t tend, hend;
+UNSUPPORTED("d0x4emyekwlcpua99voy3764p"); // tn = agtail(e);
+UNSUPPORTED("axoua6xpo7xc40u2oj0a8dmr9"); // hn = aghead(e);
+UNSUPPORTED("63jjxtcojh1aq4na9u4w2a6xe"); // r = ND_rank(tn);
+UNSUPPORTED("atjnavwfg3xe4ygorslb4vvtv"); // if (r < GD_maxrank(g)) {
+UNSUPPORTED("6b35lbhficoaf5216p3sdq1cj"); // nextr = GD_rank(g) + (r+1);
+UNSUPPORTED("bj0cch0dmhpux7wm3fg4zg368"); // vspace = ND_coord(tn).y - GD_rank(g)[r].pht1 -
+UNSUPPORTED("dqcrkagghulp8u9iuoyckepf7"); // (ND_coord(nextr->v[0]).y + nextr->pht2);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else {
+UNSUPPORTED("1sai54q4zfayczfcrklgw4x17"); // vspace = GD_ranksep(g);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("dyxkx5ftlgbeem7089pcu1qo4"); // stepx = ((double)(sp->Multisep)) / (cnt+1);
+UNSUPPORTED("63qqo8mqbn6alfa5k3gfalz53"); // stepy = vspace / (cnt+1);
+UNSUPPORTED("euw24sa4cgazdf9z7a3sretis"); // makeBottomFlatEnd (g, sp, P, tn, e, &tend, NOT(0));
+UNSUPPORTED("c8ip2hla7pb8tz4fhsj5m34wk"); // makeBottomFlatEnd (g, sp, P, hn, e, &hend, 0);
+UNSUPPORTED("1psokm6w9e7qw7fm2g1cayuk7"); // for (i = 0; i < cnt; i++) {
+UNSUPPORTED("3smlz0a87gj8w58rwau2ewq23"); // int boxn;
+UNSUPPORTED("bg5tj2hjixth58v04043jb3do"); // boxf b;
+UNSUPPORTED("8hwholxjp08y4q0zbb561684q"); // e = edges[ind + i];
+UNSUPPORTED("cpcqkqkhkaviy153h92apd82e"); // boxn = 0;
+UNSUPPORTED("4wkbaj2424ug9j97efwu1r5mc"); // b = tend.boxes[tend.boxn - 1];
+UNSUPPORTED("3eyfj1o1bqxlfqw7tq76qiiiz"); // boxes[boxn].LL.x = b.LL.x;
+UNSUPPORTED("dwlejn7xasxh4yyoq2xodqnyj"); // boxes[boxn].UR.y = b.LL.y;
+UNSUPPORTED("10o1e4r5ux8d7cr6zg379ss59"); // boxes[boxn].UR.x = b.UR.x + (i + 1) * stepx;
+UNSUPPORTED("79f4mryzkqqs3t4sxnet9jc7b"); // boxes[boxn].LL.y = b.LL.y - (i + 1) * stepy;
+UNSUPPORTED("cbrsymd5wpvadg3ziz4dypa50"); // boxn++;
+UNSUPPORTED("7n7f256w4ewtzexwfxjo28b2"); // boxes[boxn].LL.x = tend.boxes[tend.boxn - 1].LL.x;
+UNSUPPORTED("6in0ql0upnjg00mgj5k8av2m4"); // boxes[boxn].UR.y = boxes[boxn-1].LL.y;
+UNSUPPORTED("46ftsiqovpzo9r0mnlc4nf83"); // boxes[boxn].UR.x = hend.boxes[hend.boxn - 1].UR.x;
+UNSUPPORTED("4bjnn4mhczzd1un9rbib5glch"); // boxes[boxn].LL.y = boxes[boxn].UR.y - stepy;
+UNSUPPORTED("cbrsymd5wpvadg3ziz4dypa50"); // boxn++;
+UNSUPPORTED("6oycftap8apw4glb1s5jzineu"); // b = hend.boxes[hend.boxn - 1];
+UNSUPPORTED("77c1sajrw9kfc7avomly90gm8"); // boxes[boxn].UR.x = b.UR.x;
+UNSUPPORTED("e94nxsepfdq17q69drbro41je"); // boxes[boxn].UR.y = b.LL.y;
+UNSUPPORTED("6cipt7th0uv2xfwyh4rvwignj"); // boxes[boxn].LL.x = b.LL.x - (i + 1) * stepx;
+UNSUPPORTED("50uajtfbvgkrruywpjq9m4zoj"); // boxes[boxn].LL.y = boxes[boxn-1].UR.y;
+UNSUPPORTED("cbrsymd5wpvadg3ziz4dypa50"); // boxn++;
+UNSUPPORTED("eu29s7oeoca2yo9trhfhb9juy"); // for (j = 0; j < tend.boxn; j++) add_box(P, tend.boxes[j]);
+UNSUPPORTED("b8xs00axp4lkksof6hmim3n3x"); // for (j = 0; j < boxn; j++) add_box(P, boxes[j]);
+UNSUPPORTED("ahci7z910ypoj0e54wchvk54v"); // for (j = hend.boxn - 1; j >= 0; j--) add_box(P, hend.boxes[j]);
+UNSUPPORTED("7r9nsxbfy7w3csc04nxo97xpq"); // if (splines) ps = routesplines(P, &pn);
+UNSUPPORTED("dfku80ag90r137s9az9493oow"); // else ps = routepolylines(P, &pn);
+UNSUPPORTED("919jubmuis4tp1c1f87rvfhog"); // if (pn == 0)
+UNSUPPORTED("6cprbghvenu9ldc0ez1ifc63q"); // return;
+UNSUPPORTED("62oxk9cc5wf0f8gqbothfte1f"); // clip_and_install(e, aghead(e), ps, pn, &sinfo);
+UNSUPPORTED("l1nh40fo9oar4mz31h14bc9i"); // P->nbox = 0;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6yr3jfkljl5w0z6dv354ryx63
+// static void make_flat_edge(graph_t* g, spline_info_t* sp, path * P, edge_t ** edges, int ind, int cnt, int et)
+public static void make_flat_edge(Agraph_s g, spline_info_t sp, path P, __ptr__ edges, int ind, int cnt, int et) {
+ENTERING("6yr3jfkljl5w0z6dv354ryx63","make_flat_edge");
+try {
+ Agnode_s tn, hn;
+ final __struct__<Agedgeinfo_t> fwdedgei = JUtils.from(Agedgeinfo_t.class);
+ final __struct__<Agedgepair_s> fwdedge = JUtils.from(Agedgepair_s.class);
+ Agedge_s e;
+ int j, i, r, isAdjacent;
+ double stepx, stepy, vspace;
+ int tside, hside;
+ int pn[] = new int[] {0};
+ pointf ps;
+ final __struct__<pathend_t> tend = JUtils.from(pathend_t.class), hend = JUtils.from(pathend_t.class);
+ fwdedge.getStruct("out").getStruct("base").setPtr("data", fwdedgei.amp());
+ /* Get sample edge; normalize to go from left to right */
+ e = (Agedge_s) edges.plus(ind).getPtr();
+ isAdjacent = ED_adjacent(e);
+ if ((ED_tree_index(e) & 32)!=0) {
+ MAKEFWDEDGE(fwdedge.getStruct("out").amp(), e);
+ e = (Agedge_s) fwdedge.getStruct("out").amp();
+ }
+ for (i = 1; i < cnt; i++) {
+ if (ED_adjacent(edges.plus(ind+i).getPtr())!=0) {
+ isAdjacent = 1;
+ break;
+ }
+ }
+ /* The lead edge edges[ind] might not have been marked earlier as adjacent,
+ * so check them all.
+ */
+ if (isAdjacent!=0) {
+ make_flat_adj_edges (g, P, edges, ind, cnt, e, et);
+ return;
+ }
+ if (ED_label(e)!=null) { /* edges with labels aren't multi-edges */
+ make_flat_labeled_edge (g, sp, P, e, et);
+ return;
+ }
+ if (et == (1 << 1)) {
+ makeSimpleFlat (agtail(e), aghead(e), edges, ind, cnt, et);
+ return;
+ }
+ tside = ED_tail_port(e).getInt("side");
+ hside = ED_head_port(e).getInt("side");
+ if (((tside == (1<<0)) && (hside != (1<<2))) ||
+ ((hside == (1<<0)) && (tside != (1<<2)))) {
+ make_flat_bottom_edges (g, sp, P, edges, ind, cnt, e, et == (5 << 1));
+ return;
+ }
+ tn = agtail(e);
+ hn = aghead(e);
+ r = ND_rank(tn);
+ if (r > 0) {
+ __ptr__ prevr;
+ if ((GD_has_labels(g) & (1 << 0))!=0)
+ prevr = GD_rank(g).plus(r-2);
+ else
+ prevr = GD_rank(g).plus(r-1);
+ vspace = ND_coord(prevr.getPtr().getArrayOfPtr("v").plus(0).getPtr()).getDouble("y") - prevr.getPtr().getDouble("ht1")
+ - ND_coord(tn).getDouble("y") - GD_rank(g).plus(r).getDouble("ht2");
+ }
+ else {
+ vspace = GD_ranksep(g);
+ }
+ stepx = ((double)sp.getInt("Multisep")) / (cnt+1);
+ stepy = vspace / (cnt+1);
+ makeFlatEnd (g, sp, P, tn, e, tend.amp(), true);
+ makeFlatEnd (g, sp, P, hn, e, hend.amp(), false);
+ for (i = 0; i < cnt; i++) {
+ int boxn;
+ final ST_boxf b = new ST_boxf();
+ e = (Agedge_s) edges.plus(ind + i).getPtr();
+ boxn = 0;
+ b.___(tend.getArrayOfStruct("boxes").plus(tend.getInt("boxn") - 1).getStruct());
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).LL.x = b.LL.x;
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).LL.y = b.UR.y;
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).UR.x = b.UR.x + (i + 1) * stepx;
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).UR.y = b.UR.y + (i + 1) * stepy;
+ boxn++;
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).LL.x = ((ST_boxf)(tend.getArrayOfStruct("boxes").plus(tend.getInt("boxn") - 1).getStruct())).LL.x;
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).LL.y = ((ST_boxf)Z.z().boxes.plus(boxn-1).getStruct()).UR.y;
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).UR.x = ((ST_boxf)(hend.getArrayOfStruct("boxes").plus(hend.getInt("boxn") - 1).getStruct())).UR.x;
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).UR.y = ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).LL.y + stepy;
+ boxn++;
+ b.___(hend.getArrayOfStruct("boxes").plus(hend.getInt("boxn") - 1).getStruct());
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).UR.x = b.UR.x;
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).LL.y = b.UR.y;
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).LL.x = b.LL.x - (i + 1) * stepx;
+ ((ST_boxf)Z.z().boxes.plus(boxn).getStruct()).UR.y = ((ST_boxf)Z.z().boxes.plus(boxn-1).getStruct()).LL.y;
+ boxn++;
+ for (j = 0; j < tend.getInt("boxn"); j++) add_box(P, (ST_boxf)tend.getArrayOfStruct("boxes").plus(j).getStruct());
+ for (j = 0; j < boxn; j++) add_box(P, (ST_boxf)Z.z().boxes.plus(j).getStruct());
+ for (j = hend.getInt("boxn") - 1; j >= 0; j--) add_box(P, (ST_boxf)hend.getArrayOfStruct("boxes").plus(j).getStruct());
+ if (et == (5 << 1)) ps = (pointf) routesplines(P, pn);
+ else ps = (pointf) routepolylines(P, pn);
+ if (pn[0] == 0)
+ return;
+ clip_and_install(e, aghead(e), ps, pn[0], Z.z().sinfo.amp());
+ P.setInt("nbox", 0);
+ }
+} finally {
+LEAVING("6yr3jfkljl5w0z6dv354ryx63","make_flat_edge");
+}
+}
+
+
+
+
+//3 78oy7e2xm3t4de66du11ej05j
+// static int leftOf (pointf p1, pointf p2, pointf p3)
+public static Object leftOf(Object... arg) {
+UNSUPPORTED("eyp5xkiyummcoc88ul2b6tkeg"); // static int
+UNSUPPORTED("iqhj2moads3aafqx5xa8j44g"); // leftOf (pointf p1, pointf p2, pointf p3)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("5azgw3jpyk2yccpp3p4s3q817"); // int d;
+UNSUPPORTED("42n6sq1mbcvm3tugypozccbua"); // d = ((p1.y - p2.y) * (p3.x - p2.x)) -
+UNSUPPORTED("7y9r79gtx363mln6v9yaisvz6"); // ((p3.y - p2.y) * (p1.x - p2.x));
+UNSUPPORTED("8y4f8e0mnow6139qoguzsxojx"); // return (d > 0);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 2n9bpvx34fnukqu1f9u4v7v6n
+// static int makeLineEdge(graph_t* g, edge_t* fe, pointf* points, node_t** hp)
+public static int makeLineEdge(Agraph_s g, Agedge_s fe, __ptr__ points, __ptr__ hp) {
+ENTERING("2n9bpvx34fnukqu1f9u4v7v6n","makeLineEdge");
+try {
+ UNSUPPORTED("d9cz56vtrl0ri6hz88cumukuf"); // static int
+UNSUPPORTED("1act0rov08v6lg5ydqldks7d1"); // makeLineEdge(graph_t* g, edge_t* fe, pointf* points, node_t** hp)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("awgar8whid8l1c7lyj8w53w3i"); // int delr, pn;
+UNSUPPORTED("ewlm0dtv1gpudqhfx5nsr9d77"); // node_t* hn;
+UNSUPPORTED("cncpk333257fxnc9w8kfl8m70"); // node_t* tn;
+UNSUPPORTED("etezq0kgy6mttiwr53pna62d7"); // edge_t* e = fe;
+UNSUPPORTED("3ll9r1mvzzbhqrs4dwsduif44"); // pointf startp, endp, lp;
+UNSUPPORTED("bgjjpl6jaaa122twwwd0vif6x"); // pointf dimen;
+UNSUPPORTED("gdtli7sq5cifvdpg3ecrudew"); // double width, height;
+UNSUPPORTED("1pa1p9mnpooqack43qfpnoio2"); // while (ED_edge_type(e) != 0)
+UNSUPPORTED("bdmai1d040qmubf08ds339v9x"); // e = ED_to_orig(e);
+UNSUPPORTED("axoua6xpo7xc40u2oj0a8dmr9"); // hn = aghead(e);
+UNSUPPORTED("d0x4emyekwlcpua99voy3764p"); // tn = agtail(e);
+UNSUPPORTED("b4x4vd9cei4o3tjifzw7pdec6"); // delr = ABS(ND_rank(hn)-ND_rank(tn));
+UNSUPPORTED("447fk34earndyf1qvvzttsxtk"); // if ((delr == 1) || ((delr == 2) && (GD_has_labels(g) & (1 << 0))))
+UNSUPPORTED("c9ckhc8veujmwcw0ar3u3zld4"); // return 0;
+UNSUPPORTED("cbnarpi971ox21zdds7a60axh"); // if (agtail(fe) == agtail(e)) {
+UNSUPPORTED("o7usaxh5vv7rla55dxzkfmk7"); // *hp = hn;
+UNSUPPORTED("48h6vk2e5niep4dmpua377248"); // startp = add_pointf(ND_coord(tn), ED_tail_port(e).p);
+UNSUPPORTED("8fokfn1629eyiqnzi7mey9o2q"); // endp = add_pointf(ND_coord(hn), ED_head_port(e).p);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else {
+UNSUPPORTED("3uxftvwe3olgfi579s8izpl76"); // *hp = tn;
+UNSUPPORTED("akhrhgryddg74jqispnh1j1nn"); // startp = add_pointf(ND_coord(hn), ED_head_port(e).p);
+UNSUPPORTED("dqdai9l5thna19ynowkfwstuh"); // endp = add_pointf(ND_coord(tn), ED_tail_port(e).p);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("brrmfllffwlnqxljgrwy8x5pq"); // if (ED_label(e)) {
+UNSUPPORTED("et7phi46cskfaxzpfo97e1s5s"); // dimen = ED_label(e)->dimen;
+UNSUPPORTED("z26zaj60vrdy38k1c2vk7law"); // if (GD_flip(agraphof(hn))) {
+UNSUPPORTED("6mcl7j0bp09d061f0dywd1ru8"); // width = dimen.y;
+UNSUPPORTED("eax7dzvpgqzsiffa2dn2idrxe"); // height = dimen.x;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else {
+UNSUPPORTED("de3o94hui5i4dbq9moun6h57f"); // width = dimen.x;
+UNSUPPORTED("41ge1nnwfokwi43f6tlkgmvb0"); // height = dimen.y;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("d9umd1qjkl4kkybpd7se993ij"); // lp = ED_label(e)->pos, lp;
+UNSUPPORTED("arxilpbzpy5a2s8skwl644jj2"); // if (leftOf (endp,startp,lp)) {
+UNSUPPORTED("7bfb4rovu9obr4fje0hi95e67"); // lp.x += width/2.0;
+UNSUPPORTED("7y2ejp6vr760aqh5qp4v5zdc8"); // lp.y -= height/2.0;
+UNSUPPORTED("9l9roc1u8a03ljwm2mmeaiqq2"); // }
+UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else {
+UNSUPPORTED("a4spf3n199lr00qkdb3vb8i6c"); // lp.x -= width/2.0;
+UNSUPPORTED("f15m64yxj1oq475bvrt63d5gf"); // lp.y += height/2.0;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("8ew9p3k3j0b33dnq0ntgbb6x8"); // points[1] = points[0] = startp;
+UNSUPPORTED("16h577fdghqtaeot735guew4e"); // points[2] = points[3] = points[4] = lp;
+UNSUPPORTED("9zjfovamhwwehbviws68s5woy"); // points[5] = points[6] = endp;
+UNSUPPORTED("1uunj4jbr2uhiqxwor6rzmr3j"); // pn = 7;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else {
+UNSUPPORTED("8ew9p3k3j0b33dnq0ntgbb6x8"); // points[1] = points[0] = startp;
+UNSUPPORTED("aztkfl5qctibiu6en7xf6xf3e"); // points[3] = points[2] = endp;
+UNSUPPORTED("5rmgdadjn23z8djo32eh9bhzd"); // pn = 4;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("abnopd2ggrpdb538wf7zsmrhq"); // return pn;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+} finally {
+LEAVING("2n9bpvx34fnukqu1f9u4v7v6n","makeLineEdge");
+}
+}
+
+
+
+
+//3 30wfq1dby4t07hft9io52nq6z
+// static void make_regular_edge(graph_t* g, spline_info_t* sp, path * P, edge_t ** edges, int ind, int cnt, int et)
+//private static __ptr__ pointfs;
+//private static __ptr__ pointfs2;
+//private static int numpts;
+//private static int numpts2;
+public static void make_regular_edge(Agraph_s g, spline_info_t sp, path P, __ptr__ edges, int ind, int cnt, int et) {
+ENTERING("30wfq1dby4t07hft9io52nq6z","make_regular_edge");
+try {
+ Agnode_s tn, hn = null;
+ final __struct__<Agedgeinfo_t> fwdedgeai = JUtils.from(Agedgeinfo_t.class), fwdedgebi = JUtils.from(Agedgeinfo_t.class), fwdedgei = JUtils.from(Agedgeinfo_t.class);
+ final __struct__<Agedgepair_s> fwdedgea = JUtils.from(Agedgepair_s.class), fwdedgeb = JUtils.from(Agedgepair_s.class), fwdedge = JUtils.from(Agedgepair_s.class);
+ Agedge_s e, fe, le, segfirst;
+ pointf ps = null;
+ final __struct__<pathend_t> tend = JUtils.from(pathend_t.class), hend = JUtils.from(pathend_t.class);
+ final ST_boxf b = new ST_boxf();
+ int boxn, sl, si, i, j, dx, hackflag, longedge;
+ boolean smode;
+ int pn[] = new int[] {0};
+ int pointn[] = new int[] {0};
+ fwdedgea.getStruct("out").getStruct("base").setPtr("data", fwdedgeai.amp());
+ fwdedgeb.getStruct("out").getStruct("base").setPtr("data", fwdedgebi.amp());
+ fwdedge.getStruct("out").getStruct("base").setPtr("data", fwdedgei.amp());
+ if (N(Z.z().pointfs)) {
+ Z.z().pointfs = gmalloc(sizeof(pointf.class, 2000));
+ Z.z().pointfs2 = gmalloc(sizeof(pointf.class, 2000));
+ Z.z().numpts = 2000;
+ Z.z().numpts2 = 2000;
+ }
+ sl = 0;
+ e = (Agedge_s) edges.plus(ind).getPtr();
+ hackflag = 0;
+ if (ABS(ND_rank(agtail(e)) - ND_rank(aghead(e))) > 1) {
+UNSUPPORTED("8f17srpa5iisomehrb4b01h51"); // fwdedgeai = *(Agedgeinfo_t*)e->base.data;
+UNSUPPORTED("97znyysf99vzzwpgnqcpp5yek"); // fwdedgea.out = *e;
+UNSUPPORTED("b6jipryp9p354gtq9lwa35lzj"); // fwdedgea.out.base.data = (Agrec_t*)&fwdedgeai;
+UNSUPPORTED("568s5ftes1chv9n1s98g9cncf"); // if (ED_tree_index(e) & 32) {
+UNSUPPORTED("9hw2l0eu91vauhvj3cxf3andc"); // MAKEFWDEDGE(&fwdedgeb.out, e);
+UNSUPPORTED("1rql0qzotc0yyozcfkj9p8xkm"); // agtail(&fwdedgea.out) = aghead(e);
+UNSUPPORTED("dw3p473qmkgjvxewsr8pimi2h"); // ED_tail_port(&fwdedgea.out) = ED_head_port(e);
+UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else {
+UNSUPPORTED("2gys0bodxz4fbasfnrvx6ivg2"); // fwdedgebi = *(Agedgeinfo_t*)e->base.data;
+UNSUPPORTED("1qqbo2mfls7xhbdno0no8xq54"); // fwdedgeb.out = *e;
+UNSUPPORTED("980ksnsma7kvvr9755ge8bhzh"); // fwdedgeb.out.base.data = (Agrec_t*)&fwdedgebi;
+UNSUPPORTED("6le0rehxs2odmv3zg1qg5wvd4"); // agtail(&fwdedgea.out) = agtail(e);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("3p0d08nntark676jlv1jl0j27"); // le = getmainedge(e);
+UNSUPPORTED("6tmwmfqoz3y8k44xamrpv82tl"); // while (ED_to_virt(le))
+UNSUPPORTED("1c19c7ftue4zoibf7d2tm6uxy"); // le = ED_to_virt(le);
+UNSUPPORTED("d29k9lzj5g3d8dfxigwogdnoe"); // aghead(&fwdedgea.out) = aghead(le);
+UNSUPPORTED("36l0czce101bg0wbmu68xjd7z"); // ED_head_port(&fwdedgea.out).defined = 0;
+UNSUPPORTED("497rb9p6jdgdoyem0y42ecy6c"); // ED_edge_type(&fwdedgea.out) = 1;
+UNSUPPORTED("4tjj1vbw4mog2qlouazrdirvw"); // ED_head_port(&fwdedgea.out).p.x = ED_head_port(&fwdedgea.out).p.y = 0;
+UNSUPPORTED("8kdma1vi9aibo7isrge0lunrh"); // ED_to_orig(&fwdedgea.out) = e;
+UNSUPPORTED("eih8eaai768x1un5mixrtgstp"); // e = &fwdedgea.out;
+UNSUPPORTED("bxkpl0bp0qhtxaj6rspd19d1k"); // hackflag = NOT(0);
+ } else {
+ if ((ED_tree_index(e) & 32)!=0) {
+ MAKEFWDEDGE(fwdedgea.getPtr("out"), e);
+ e = (Agedge_s) fwdedgea.getPtr("out");
+ }
+ }
+ fe = e;
+ /* compute the spline points for the edge */
+ if ((et == (1 << 1)) && (pointn[0] = makeLineEdge (g, fe, Z.z().pointfs, hn.unsupported()))!=0) {
+ }
+ else {
+ boolean splines = (et == (5 << 1));
+ boxn = 0;
+ pointn[0] = 0;
+ segfirst = e;
+ tn = agtail(e);
+ hn = aghead(e);
+ b.___(maximal_bbox(g, sp, tn, null, e));
+ tend.getStruct("nb").___(b);
+ beginpath(P, e, 1, tend.amp(), spline_merge(tn));
+ b.UR.y =
+ ((ST_boxf)tend.getArrayOfStruct("boxes").plus(tend.getInt("boxn") - 1).getStruct()).UR.y;
+ b.LL.y =
+ ((ST_boxf)tend.getArrayOfStruct("boxes").plus(tend.getInt("boxn") - 1).getStruct()).LL.y;
+ b.___(makeregularend(b, (1<<0),
+ ND_coord(tn).getDouble("y") - GD_rank(g).plus(ND_rank(tn)).getDouble("ht1")));
+ if (b.LL.x < b.UR.x && b.LL.y < b.UR.y)
+ {
+ tend.getArrayOfStruct("boxes").plus(tend.getInt("boxn")).setStruct(b);
+ tend.setInt("boxn", tend.getInt("boxn") + 1);
+ }
+ longedge = 0;
+ smode = false; si = -1;
+ while (ND_node_type(hn) == 1 && N(((Boolean)Z.z().sinfo.call("splineMerge", hn)).booleanValue())) {
+ longedge = 1;
+ Z.z().boxes.plus(boxn++).setStruct(rank_box(sp, g, ND_rank(tn)));
+ if (N(smode)
+ && ((sl = straight_len(hn)) >=
+ ((GD_has_labels(g) & (1 << 0))!=0 ? 4 + 1 : 2 + 1))) {
+ smode = NOT(false);
+ si = 1; sl -= 2;
+ }
+ if (N(smode) || si > 0) {
+ si--;
+ Z.z().boxes.plus(boxn++).setStruct( maximal_bbox(g, sp, hn, e, (Agedge_s) ND_out(hn).getFromList(0)));
+ e = (Agedge_s) ND_out(hn).getFromList(0);
+ tn = agtail(e);
+ hn = aghead(e);
+ continue;
+ }
+ hend.setStruct("nb", maximal_bbox(g, sp, hn, e, (Agedge_s) ND_out(hn).getFromList(0)));
+ endpath(P, e, 1, hend.amp(), spline_merge(aghead(e)));
+ b.___(makeregularend((ST_boxf) hend.getArrayOfStruct("boxes").plus(hend.getInt("boxn") - 1).getStruct(), (1<<2),
+ ND_coord(hn).getDouble("y") + GD_rank(g).plus(ND_rank(hn)).getDouble("ht2")));
+ if (b.LL.x < b.UR.x && b.LL.y < b.UR.y)
+UNSUPPORTED("1crhubfzekx1qi2ti9ajqsfoc"); // hend.boxes[hend.boxn++] = b;
+ P.getStruct("end").setDouble("theta", M_PI / 2);
+ P.getStruct("end").setBoolean("constrained", NOT(false));
+ completeregularpath(P, segfirst, e, tend.amp(), hend.amp(), Z.z().boxes, boxn, 1);
+ if (splines) ps = routesplines(P, pn);
+ else {
+UNSUPPORTED("biyp75vm751j3qmqacagfej4b"); // ps = routepolylines (P, &pn);
+UNSUPPORTED("4fmdmgg43suu7ppgrcaofwqzh"); // if ((et == (1 << 1)) && (pn > 4)) {
+UNSUPPORTED("2ftwbx9nsy10ldzds3ej4hxi7"); // ps[1] = ps[0];
+UNSUPPORTED("2fedie0btpk43e74p462n0y4n"); // ps[3] = ps[2] = ps[pn-1];
+UNSUPPORTED("3fwatldph3opctz8aieqd214d"); // pn = 4;
+UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // }
+ }
+ if (pn[0] == 0)
+ return;
+ if (pointn[0] + pn[0] > Z.z().numpts) {
+ /* This should be enough to include 3 extra points added by
+ * straight_path below.
+ */
+UNSUPPORTED("k37sqlxbjikqg4xdonnvefo3"); // numpts = 2*(pointn+pn);
+UNSUPPORTED("8kbxhk7qirj3tr7hn1ukwar3h"); // pointfs = RALLOC(numpts, pointfs, pointf);
+ }
+ for (i = 0; i < pn[0]; i++) {
+ Z.z().pointfs.plus(pointn[0]++).setStruct(ps.plus(i).getStruct());
+ }
+ e = straight_path((Agedge_s)ND_out(hn).getFromList(0), sl, Z.z().pointfs, pointn);
+ recover_slack(segfirst, P);
+ segfirst = e;
+ tn = agtail(e);
+ hn = aghead(e);
+ boxn = 0;
+ tend.setStruct("nb", maximal_bbox(g, sp, tn, (Agedge_s) ND_in(tn).getFromList(0), e));
+ beginpath(P, e, 1, tend.amp(), spline_merge(tn));
+ b.___(makeregularend((ST_boxf) tend.getArrayOfStruct("boxes").plus(tend.getInt("boxn") - 1).getStruct(), (1<<0),
+ ND_coord(tn).getDouble("y") - GD_rank(g).plus(ND_rank(tn)).getDouble("ht1")));
+ if (b.LL.x < b.UR.x && b.LL.y < b.UR.y)
+UNSUPPORTED("cjx6tldge3otk1pk6ks1pkn2w"); // tend.boxes[tend.boxn++] = b;
+ P.getStruct("start").setDouble("theta", -M_PI / 2);
+ P.getStruct("start").setBoolean("constrained", NOT(false));
+ smode = false;
+ }
+ Z.z().boxes.plus(boxn++).setStruct(rank_box(sp, g, ND_rank(tn)));
+ b.___(maximal_bbox(g, sp, hn, e, null));
+ hend.getStruct("nb").___(b);
+ endpath(P, hackflag!=0 ? fwdedgeb.getStruct("out").amp() : e, 1, hend.amp(), spline_merge(aghead(e)));
+ b.UR.y = ((ST_boxf)hend.getArrayOfStruct("boxes").plus(hend.getInt("boxn") - 1).getStruct()).UR.y;
+ b.LL.y = ((ST_boxf)hend.getArrayOfStruct("boxes").plus(hend.getInt("boxn") - 1).getStruct()).LL.y;
+ b.___(makeregularend(b, (1<<2),
+ ND_coord(hn).getDouble("y") + GD_rank(g).plus(ND_rank(hn)).getDouble("ht2")));
+ if (b.LL.x < b.UR.x && b.LL.y < b.UR.y)
+ {
+ hend.getArrayOfStruct("boxes").plus(hend.getInt("boxn")).setStruct(b);
+ hend.setInt("boxn", hend.getInt("boxn")+1);
+ }
+ completeregularpath(P, segfirst, e, tend.amp(), hend.amp(), Z.z().boxes, boxn,
+ longedge);
+ if (splines) ps = routesplines(P, pn);
+ else ps = routepolylines (P, pn);
+ if ((et == (1 << 1)) && (pn[0] > 4)) {
+ /* Here we have used the polyline case to handle
+ * an edge between two nodes on adjacent ranks. If the
+ * results really is a polyline, straighten it.
+ */
+UNSUPPORTED("1u7e6lrkiipml54kkm7ylw56t"); // ps[1] = ps[0];
+UNSUPPORTED("76bh6z0xok01d0gdybxcx4ful"); // ps[3] = ps[2] = ps[pn-1];
+UNSUPPORTED("95b6xp8h5ai070bekyjhmiehh"); // pn = 4;
+ }
+ if (pn[0] == 0)
+ return;
+ if (pointn[0] + pn[0] > Z.z().numpts) {
+UNSUPPORTED("c6ux5effs02grz7xh3k8ernda"); // numpts = 2*(pointn+pn);
+UNSUPPORTED("bedaqcn9h03q6ia6zbezuee1m"); // pointfs = RALLOC(numpts, pointfs, pointf);
+ }
+ for (i = 0; i < pn[0]; i++) {
+ Z.z().pointfs.plus(pointn[0]).setStruct(ps.plus(i).getStruct());
+ pointn[0]++;
+ }
+ recover_slack(segfirst, P);
+ hn = hackflag!=0 ? aghead(fwdedgeb.getStruct("out").amp()) : aghead(e);
+ }
+ /* make copies of the spline points, one per multi-edge */
+ if (cnt == 1) {
+ clip_and_install(fe, hn, Z.z().pointfs, pointn[0], Z.z().sinfo.amp());
+ return;
+ }
+ dx = sp.getInt("Multisep") * (cnt - 1) / 2;
+ for (i = 1; i < pointn[0] - 1; i++)
+ Z.z().pointfs.plus(i).setDouble("x", Z.z().pointfs.plus(i).getDouble("x") - dx);
+ if (Z.z().numpts > Z.z().numpts2) {
+UNSUPPORTED("9ubr4m7bdv5f5ldk2ta6yw3up"); // numpts2 = numpts;
+UNSUPPORTED("8qwp7ddy5ztgam63fzfjmu890"); // pointfs2 = RALLOC(numpts2, pointfs2, pointf);
+ }
+ for (i = 0; i < pointn[0]; i++)
+ Z.z().pointfs2.plus(i).setStruct(Z.z().pointfs.plus(i).getStruct());
+ clip_and_install(fe, hn, Z.z().pointfs2, pointn[0], Z.z().sinfo.amp());
+ for (j = 1; j < cnt; j++) {
+ e = (Agedge_s) edges.plus(ind + j).getPtr();
+ if ((ED_tree_index(e) & 32)!=0) {
+ MAKEFWDEDGE(fwdedge.getStruct("out").amp(), e);
+ e = (Agedge_s) fwdedge.getStruct("out").amp();
+ }
+ for (i = 1; i < pointn[0] - 1; i++)
+ Z.z().pointfs.plus(i).setDouble("x", Z.z().pointfs.plus(i).getDouble("x") + sp.getInt("Multisep"));
+ for (i = 0; i < pointn[0]; i++)
+ Z.z().pointfs2.plus(i).setStruct(Z.z().pointfs.plus(i).getStruct());
+ clip_and_install(e, aghead(e), Z.z().pointfs2, pointn[0], Z.z().sinfo.amp());
+ }
+} finally {
+LEAVING("30wfq1dby4t07hft9io52nq6z","make_regular_edge");
+}
+}
+
+
+
+
+//3 va61hggynvb6z6j34w7otmab
+// static void completeregularpath(path * P, edge_t * first, edge_t * last, pathend_t * tendp, pathend_t * hendp, boxf * boxes, int boxn, int flag)
+public static void completeregularpath(path P, Agedge_s first, Agedge_s last, pathend_t tendp, pathend_t hendp, __array_of_struct__ boxes, int boxn, int flag) {
+ENTERING("va61hggynvb6z6j34w7otmab","completeregularpath");
+try {
+ Agedge_s uleft, uright, lleft, lright;
+ int i, fb, lb;
+ splines spl;
+ pointf pp;
+ int pn;
+ fb = lb = -1;
+ uleft = uright = null;
+ uleft = top_bound(first, -1);
+ uright = top_bound(first, 1);
+ if (uleft!=null) {
+ if (N(spl = getsplinepoints(uleft))) return;
+ pp = (pointf) spl.getArrayOfPtr("list").plus(0).getPtr().getPtr("list");
+ pn = spl.getArrayOfPtr("list").plus(0).getPtr().getInt("size");
+ }
+ if (uright!=null) {
+ if (N(spl = getsplinepoints(uright))) return;
+ pp = (pointf) spl.getArrayOfPtr("list").plus(0).getPtr().getPtr("list");
+ pn = spl.getArrayOfPtr("list").plus(0).getPtr().getInt("size");
+ }
+ lleft = lright = null;
+ lleft = bot_bound(last, -1);
+ lright = bot_bound(last, 1);
+ if (lleft!=null) {
+ if (N(spl = getsplinepoints(lleft))) return;
+ pp = (pointf) spl.getArrayOfPtr("list").plus(spl.getInt("size") - 1).getPtr().getPtr("list");
+ pn = spl.getArrayOfPtr("list").plus(spl.getInt("size") - 1).getPtr().getInt("size");
+ }
+ if (lright!=null) {
+ if (N(spl = getsplinepoints(lright))) return;
+ pp = (pointf) spl.getArrayOfPtr("list").plus(spl.getInt("size") - 1).getPtr().getPtr("list");
+ pn = spl.getArrayOfPtr("list").plus(spl.getInt("size") - 1).getPtr().getInt("size");
+ }
+ for (i = 0; i < tendp.getInt("boxn"); i++)
+ add_box(P, (ST_boxf)tendp.getArrayOfStruct("boxes").plus(i).getStruct());
+ fb = P.getInt("nbox") + 1;
+ lb = fb + boxn - 3;
+ for (i = 0; i < boxn; i++)
+ add_box(P, (ST_boxf)boxes.plus(i).getStruct());
+ for (i = hendp.getInt("boxn") - 1; i >= 0; i--)
+ add_box(P, (ST_boxf)hendp.getArrayOfStruct("boxes").plus(i).getStruct());
+ adjustregularpath(P, fb, lb);
+} finally {
+LEAVING("va61hggynvb6z6j34w7otmab","completeregularpath");
+}
+}
+
+
+
+
+//3 3wwhczhpkcnflwr1l9wcga7tq
+// static boxf makeregularend(boxf b, int side, double y)
+public static __struct__<boxf> makeregularend(final ST_boxf b, int side, double y) {
+// WARNING!! STRUCT
+return makeregularend_w_(b.copy(), side, y).copy();
+}
+private static __struct__<boxf> makeregularend_w_(final ST_boxf b, int side, double y) {
+ENTERING("3wwhczhpkcnflwr1l9wcga7tq","makeregularend");
+try {
+ final __struct__<boxf> newb = JUtils.from(boxf.class);
+ switch (side) {
+ case (1<<0):
+ newb.___(boxfof(b.LL.x, y, b.UR.x, b.LL.y));
+ break;
+ case (1<<2):
+ newb.___(boxfof(b.LL.x, b.UR.y, b.UR.x, y));
+ break;
+ }
+ return newb;
+} finally {
+LEAVING("3wwhczhpkcnflwr1l9wcga7tq","makeregularend");
+}
+}
+
+
+
+
+//3 88xrlzjovkxcnay9b2y5zyiid
+// static void adjustregularpath(path * P, int fb, int lb)
+public static void adjustregularpath(path P, int fb, int lb) {
+ENTERING("88xrlzjovkxcnay9b2y5zyiid","adjustregularpath");
+try {
+ boxf bp1, bp2;
+ int i, x;
+ for (i = fb-1; i < lb+1; i++) {
+ bp1 = P.getArrayOfPtr("boxes").plus(i).getStruct().amp();
+ if ((i - fb) % 2 == 0) {
+ if (bp1.getStruct("LL").getDouble("x") >= bp1.getStruct("UR").getDouble("x")) {
+ x = (int)((bp1.getStruct("LL").getDouble("x") + bp1.getStruct("UR").getDouble("x")) / 2);
+ bp1.getStruct("LL").setDouble("x", x - 8);
+ bp1.getStruct("UR").setDouble("x", x + 8);
+ }
+ } else {
+ if (bp1.getStruct("LL").getDouble("x") + 16 > bp1.getStruct("UR").getDouble("x")) {
+ x = (int)((bp1.getStruct("LL").getDouble("x") + bp1.getStruct("UR").getDouble("x")) / 2);
+ bp1.getStruct("LL").setDouble("x", x - 8);
+ bp1.getStruct("UR").setDouble("x", x + 8);
+ }
+ }
+ }
+ for (i = 0; i < P.getInt("nbox") - 1; i++) {
+ bp1 = P.getArrayOfPtr("boxes").plus(i).getStruct().amp();
+ bp2 = P.getArrayOfPtr("boxes").plus(i+1).getStruct().amp();
+ if (i >= fb && i <= lb && (i - fb) % 2 == 0) {
+ if (bp1.getStruct("LL").getDouble("x") + 16 > bp2.getStruct("UR").getDouble("x"))
+ bp2.getStruct("UR").setDouble("x", bp1.getStruct("LL").getDouble("x") + 16);
+ if (bp1.getStruct("UR").getDouble("x") - 16 < bp2.getStruct("LL").getDouble("x"))
+ bp2.getStruct("LL").setDouble("x", bp1.getStruct("UR").getDouble("x") - 16);
+ } else if (i + 1 >= fb && i < lb && (i + 1 - fb) % 2 == 0) {
+ if (bp1.getStruct("LL").getDouble("x") + 16 > bp2.getStruct("UR").getDouble("x"))
+ bp1.getStruct("LL").setDouble("x", bp2.getStruct("UR").getDouble("x") - 16);
+ if (bp1.getStruct("UR").getDouble("x") - 16 < bp2.getStruct("LL").getDouble("x"))
+ bp1.getStruct("UR").setDouble("x", bp2.getStruct("LL").getDouble("x") + 16);
+ }
+ }
+} finally {
+LEAVING("88xrlzjovkxcnay9b2y5zyiid","adjustregularpath");
+}
+}
+
+
+
+
+//3 bajn5vx0isu427n6dh131b985
+// static boxf rank_box(spline_info_t* sp, graph_t * g, int r)
+public static ST_boxf rank_box(spline_info_t sp, Agraph_s g, int r) {
+// WARNING!! STRUCT
+return rank_box_w_(sp, g, r).copy();
+}
+private static ST_boxf rank_box_w_(spline_info_t sp, Agraph_s g, int r) {
+ENTERING("bajn5vx0isu427n6dh131b985","rank_box");
+try {
+ final ST_boxf b = new ST_boxf();
+ Agnode_s /* *right0, *right1, */ left0, left1;
+ b.___(sp.getPtr("Rank_box").plus(r).getStruct());
+ if (b.LL.x == b.UR.x) {
+ left0 = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(0).getPtr();
+ /* right0 = GD_rank(g)[r].v[GD_rank(g)[r].n - 1]; */
+ left1 = (Agnode_s) GD_rank(g).plus(r + 1).getArrayOfPtr("v").plus(0).getPtr();
+ /* right1 = GD_rank(g)[r + 1].v[GD_rank(g)[r + 1].n - 1]; */
+ b.LL.x = sp.getInt("LeftBound");
+ b.LL.y = ND_coord(left1).getDouble("y") + GD_rank(g).plus(r + 1).getDouble("ht2");
+ b.UR.x = sp.getInt("RightBound");
+ b.UR.y = ND_coord(left0).getDouble("y") - GD_rank(g).plus(r).getDouble("ht1");
+ sp.getPtr("Rank_box").plus(r).setStruct(b);
+ }
+ return b;
+} finally {
+LEAVING("bajn5vx0isu427n6dh131b985","rank_box");
+}
+}
+
+
+
+
+//3 6qwcnugx2ytjrvi5rgxzyzg5i
+// static int straight_len(node_t * n)
+public static int straight_len(Agnode_s n) {
+ENTERING("6qwcnugx2ytjrvi5rgxzyzg5i","straight_len");
+try {
+ int cnt = 0;
+ Agnode_s v;
+ v = n;
+ while (true) {
+ v = (Agnode_s) aghead(ND_out(v).getFromList(0));
+ if (ND_node_type(v) != 1)
+ break;
+ if ((ND_out(v).size != 1) || (ND_in(v).size != 1))
+ break;
+ if (ND_coord(v).getDouble("x") != ND_coord(n).getDouble("x"))
+ break;
+ cnt++;
+ }
+ return cnt;
+} finally {
+LEAVING("6qwcnugx2ytjrvi5rgxzyzg5i","straight_len");
+}
+}
+
+
+
+
+//3 15pgjjuil2c1rjldu29j07gbz
+// static edge_t *straight_path(edge_t * e, int cnt, pointf * plist, int *np)
+public static Agedge_s straight_path(Agedge_s e, int cnt, __ptr__ plist, int np[]) {
+ENTERING("15pgjjuil2c1rjldu29j07gbz","straight_path");
+try {
+ int n = np[0];
+ Agedge_s f = e;
+ while ((cnt--)!=0)
+ f = (Agedge_s) ND_out(aghead(f)).getFromList(0);
+ plist.plus(np[0]++).setStruct(plist.plus(n - 1).getStruct());
+ plist.plus(np[0]++).setStruct(plist.plus(n - 1).getStruct());
+ plist.plus(np[0]).setStruct(ND_coord(agtail(f))); /* will be overwritten by next spline */
+ return f;
+} finally {
+LEAVING("15pgjjuil2c1rjldu29j07gbz","straight_path");
+}
+}
+
+
+
+
+//3 4ilkzqtegd5uffawb4qcjthu1
+// static void recover_slack(edge_t * e, path * p)
+public static void recover_slack(Agedge_s e, path p) {
+ENTERING("4ilkzqtegd5uffawb4qcjthu1","recover_slack");
+try {
+ int b;
+ Agnode_s vn;
+ b = 0; /* skip first rank box */
+ for (vn = aghead(e);
+ ND_node_type(vn) == 1 && N(((Boolean)Z.z().sinfo.call("splineMerge", vn)).booleanValue());
+ vn = aghead(ND_out(vn).getFromList(0))) {
+ while ((b < p.getInt("nbox")) && (p.getPtr("boxes").plus(b).getStruct("LL").getDouble("y") > ND_coord(vn).getDouble("y")))
+ b++;
+ if (b >= p.getInt("nbox"))
+ break;
+ if (p.getPtr("boxes").plus(b).getStruct("UR").getDouble("y") < ND_coord(vn).getDouble("y"))
+ continue;
+ if (ND_label(vn)!=null)
+ resize_vn(vn, (int)p.getPtr("boxes").plus(b).getStruct("LL").getDouble("x"), (int)p.getPtr("boxes").plus(b).getStruct("UR").getDouble("x"),
+ (int)(p.getPtr("boxes").plus(b).getStruct("UR").getDouble("x") + ND_rw(vn)));
+ else
+ resize_vn(vn, (int)p.getPtr("boxes").plus(b).getStruct("LL").getDouble("x"), (int)((p.getPtr("boxes").plus(b).getStruct("LL").getDouble("x") +
+ p.getPtr("boxes").plus(b).getStruct("UR").getDouble("x")) / 2),
+ (int)p.getPtr("boxes").plus(b).getStruct("UR").getDouble("x"));
+ }
+} finally {
+LEAVING("4ilkzqtegd5uffawb4qcjthu1","recover_slack");
+}
+}
+
+
+
+
+//3 3vmg1q1r0eb14etvjdk4cukpd
+// static void resize_vn(vn, lx, cx, rx) node_t *vn
+public static void resize_vn(Agnode_s vn, int lx, int cx, int rx) {
+ENTERING("3vmg1q1r0eb14etvjdk4cukpd","resize_vn");
+try {
+ ND_coord(vn).setDouble("x", cx);
+ ND_lw(vn, cx - lx);
+ ND_rw(vn, rx - cx);
+} finally {
+LEAVING("3vmg1q1r0eb14etvjdk4cukpd","resize_vn");
+}
+}
+
+
+
+
+//3 9t0v5wicmjuc3ij9hko6iawle
+// static edge_t *top_bound(edge_t * e, int side)
+public static Agedge_s top_bound(Agedge_s e, int side) {
+ENTERING("9t0v5wicmjuc3ij9hko6iawle","top_bound");
+try {
+ Agedge_s f, ans = null;
+ int i;
+ for (i = 0; (f = (Agedge_s) ND_out(agtail(e)).getFromList(i))!=null; i++) {
+ if (side * (ND_order(aghead(f)) - ND_order(aghead(e))) <= 0)
+ continue;
+ if ((ED_spl(f) == null)
+ && ((ED_to_orig(f) == null) || (ED_spl(ED_to_orig(f)) == null)))
+ continue;
+ if ((ans == null)
+ || (side * (ND_order(aghead(ans)) - ND_order(aghead(f))) > 0))
+ ans = f;
+ }
+ return ans;
+} finally {
+LEAVING("9t0v5wicmjuc3ij9hko6iawle","top_bound");
+}
+}
+
+
+
+
+//3 9fsg0uiyhtrayd4mimmc0i25e
+// static edge_t *bot_bound(edge_t * e, int side)
+public static Agedge_s bot_bound(Agedge_s e, int side) {
+ENTERING("9fsg0uiyhtrayd4mimmc0i25e","bot_bound");
+try {
+ Agedge_s f, ans = null;
+ int i;
+ for (i = 0; (f = (Agedge_s) ND_in(aghead(e)).getFromList(i))!=null; i++) {
+ if (side * (ND_order(agtail(f)) - ND_order(agtail(e))) <= 0)
+ continue;
+ if ((ED_spl(f) == null)
+ && ((ED_to_orig(f) == null) || (ED_spl(ED_to_orig(f)) == null)))
+ continue;
+ if ((ans == null)
+ || (side * (ND_order(agtail(ans)) - ND_order(agtail(f))) > 0))
+ ans = f;
+ }
+ return ans;
+} finally {
+LEAVING("9fsg0uiyhtrayd4mimmc0i25e","bot_bound");
+}
+}
+
+
+
+
+//3 65uvkv1mextaah5m997ibe3qs
+// static int cl_vninside(graph_t * cl, node_t * n)
+public static boolean cl_vninside(Agraph_s cl, Agnode_s n) {
+ENTERING("65uvkv1mextaah5m997ibe3qs","cl_vninside");
+try {
+ return (BETWEEN(GD_bb(cl).LL.x, (double)(ND_coord(n).getDouble("x")), GD_bb(cl).UR.x) &&
+ BETWEEN(GD_bb(cl).LL.y, (double)(ND_coord(n).getDouble("y")), GD_bb(cl).UR.y));
+} finally {
+LEAVING("65uvkv1mextaah5m997ibe3qs","cl_vninside");
+}
+}
+
+
+
+
+//3 dzvvmxkya868w5x78lkvchigk
+// static Agraph_t *cl_bound(graph_t* g, node_t *n, node_t *adj)
+public static Agraph_s cl_bound(Agraph_s g, Agnode_s n, Agnode_s adj) {
+ENTERING("dzvvmxkya868w5x78lkvchigk","cl_bound");
+try {
+ Agraph_s rv, cl, tcl, hcl;
+ Agedge_s orig;
+ rv = null;
+ if (ND_node_type(n) == 0)
+ tcl = hcl = ND_clust(n);
+ else {
+ orig = ED_to_orig(ND_out(n).getFromList(0));
+ tcl = ND_clust(agtail(orig));
+ hcl = ND_clust(aghead(orig));
+ }
+ if (ND_node_type(adj) == 0) {
+ cl = ( EQ(ND_clust(adj), g) ? null:ND_clust(adj));
+ if (cl!=null && NEQ(cl, tcl) && NEQ(cl, hcl))
+ rv = cl;
+ } else {
+ orig = ED_to_orig(ND_out(adj).getFromList(0));
+ cl = ( EQ(ND_clust(agtail(orig)), g) ? null:ND_clust(agtail(orig)));
+ if (cl!=null && NEQ(cl, tcl) && NEQ(cl, hcl) && cl_vninside(cl, adj))
+ rv = cl;
+ else {
+ cl = ( EQ(ND_clust(aghead(orig)), g) ? null:ND_clust(aghead(orig)));
+ if (cl!=null && NEQ(cl, tcl) && NEQ(cl, hcl) && cl_vninside(cl, adj))
+ rv = cl;
+ }
+ }
+ return rv;
+} finally {
+LEAVING("dzvvmxkya868w5x78lkvchigk","cl_bound");
+}
+}
+
+
+
+
+//3 6qwgl36ugfnduc5x59ohuewv1
+// static boxf maximal_bbox(graph_t* g, spline_info_t* sp, node_t* vn, edge_t* ie, edge_t* oe)
+public static __struct__<boxf> maximal_bbox(Agraph_s g, spline_info_t sp, Agnode_s vn, Agedge_s ie, Agedge_s oe) {
+// WARNING!! STRUCT
+return maximal_bbox_w_(g, sp, vn, ie, oe).copy();
+}
+private static __struct__<boxf> maximal_bbox_w_(Agraph_s g, spline_info_t sp, Agnode_s vn, Agedge_s ie, Agedge_s oe) {
+ENTERING("6qwgl36ugfnduc5x59ohuewv1","maximal_bbox");
+try {
+ double b, nb;
+ Agraph_s left_cl, right_cl;
+ Agnode_s left, right;
+ final ST_boxf rv = new ST_boxf();
+ left_cl = right_cl = null;
+ /* give this node all the available space up to its neighbors */
+ b = (double)(ND_coord(vn).getDouble("x") - ND_lw(vn) - 4);
+ if ((left = neighbor(g, vn, ie, oe, -1))!=null) {
+ if ((left_cl = cl_bound(g, vn, left))!=null)
+ nb = GD_bb(left_cl).UR.x + (double)(sp.getInt("Splinesep"));
+ else {
+ nb = (double)(ND_coord(left).getDouble("x") + ND_mval(left));
+ if (ND_node_type(left) == 0)
+ nb += GD_nodesep(g) / 2.;
+ else
+ nb += (double)(sp.getInt("Splinesep"));
+ }
+ if (nb < b)
+ b = nb;
+ rv.LL.x = ROUND(b);
+ } else
+ rv.LL.x = MIN(ROUND(b), sp.getInt("LeftBound"));
+ /* we have to leave room for our own label! */
+ if ((ND_node_type(vn) == 1) && (ND_label(vn)!=null))
+ b = (double)(ND_coord(vn).getDouble("x") + 10);
+ else
+ b = (double)(ND_coord(vn).getDouble("x") + ND_rw(vn) + 4);
+ if ((right = neighbor(g, vn, ie, oe, 1))!=null) {
+ if ((right_cl = cl_bound(g, vn, right))!=null)
+ nb = GD_bb(right_cl).LL.x - (double)(sp.getInt("Splinesep"));
+ else {
+ nb = ND_coord(right).getDouble("x") - ND_lw(right);
+ if (ND_node_type(right) == 0)
+ nb -= GD_nodesep(g) / 2.;
+ else
+ nb -= (double)(sp.getInt("Splinesep"));
+ }
+ if (nb > b)
+ b = nb;
+ rv.UR.x = ROUND(b);
+ } else
+ rv.UR.x = MAX(ROUND(b), sp.getInt("RightBound"));
+ if ((ND_node_type(vn) == 1) && (ND_label(vn)!=null)) {
+ rv.UR.x = rv.UR.x - ND_rw(vn);
+ if (rv.UR.x < rv.LL.x) rv.UR.x = ND_coord(vn).getDouble("x");
+ }
+ rv.LL.y = ND_coord(vn).getDouble("y") - GD_rank(g).plus(ND_rank(vn)).getDouble("ht1");
+ rv.UR.y = ND_coord(vn).getDouble("y") + GD_rank(g).plus(ND_rank(vn)).getDouble("ht2");
+ return rv;
+} finally {
+LEAVING("6qwgl36ugfnduc5x59ohuewv1","maximal_bbox");
+}
+}
+
+
+
+
+//3 18pm6r3xcy90f0xi5hpm9jdhk
+// static node_t * neighbor(graph_t* g, node_t *vn, edge_t *ie, edge_t *oe, int dir)
+public static Agnode_s neighbor(Agraph_s g, Agnode_s vn, Agedge_s ie, Agedge_s oe, int dir) {
+ENTERING("18pm6r3xcy90f0xi5hpm9jdhk","neighbor");
+try {
+ int i;
+ Agnode_s n, rv = null;
+ __ptr__ rank = GD_rank(g).plus(ND_rank(vn));
+ for (i = ND_order(vn) + dir; ((i >= 0) && (i < rank.getInt("n"))); i += dir) {
+ n = (Agnode_s) rank.getArrayOfPtr("v").plus(i).getPtr();
+ if ((ND_node_type(n) == 1) && (ND_label(n)!=null)) {
+ rv = n;
+ break;
+ }
+ if (ND_node_type(n) == 0) {
+ rv = n;
+ break;
+ }
+ if (pathscross(n, vn, ie, oe) == false) {
+ rv = n;
+ break;
+ }
+ }
+ return rv;
+} finally {
+LEAVING("18pm6r3xcy90f0xi5hpm9jdhk","neighbor");
+}
+}
+
+
+
+
+//3 f4q0oqe165s9pl5k0th5noeyv
+// static boolean pathscross(n0, n1, ie1, oe1) node_t *n0, *n1
+public static boolean pathscross(Agnode_s n0, Agnode_s n1, Agedge_s ie1, Agedge_s oe1) {
+ENTERING("f4q0oqe165s9pl5k0th5noeyv","pathscross");
+try {
+ Agedge_s e0, e1;
+ Agnode_s na, nb;
+ boolean order;
+ int cnt;
+ order = (ND_order(n0) > ND_order(n1));
+ if ((ND_out(n0).size != 1) && (ND_out(n0).size != 1))
+ return false;
+ e1 = oe1;
+ if (ND_out(n0).size == 1 && e1!=null) {
+ e0 = (Agedge_s) ND_out(n0).getFromList(0);
+ for (cnt = 0; cnt < 2; cnt++) {
+ if (EQ(na = aghead(e0), nb = aghead(e1)))
+ break;
+ if (order != (ND_order(na) > ND_order(nb)))
+ return NOT(false);
+ if ((ND_out(na).size != 1) || (ND_node_type(na) == 0))
+ break;
+ e0 = (Agedge_s) ND_out(na).getFromList(0);
+ if ((ND_out(nb).size != 1) || (ND_node_type(nb) == 0))
+ break;
+ e1 = (Agedge_s) ND_out(nb).getFromList(0);
+ }
+ }
+ e1 = ie1;
+ if (ND_in(n0).size == 1 && e1!=null) {
+ e0 = (Agedge_s) ND_in(n0).getFromList(0);
+ for (cnt = 0; cnt < 2; cnt++) {
+ if (EQ(na = agtail(e0), nb = agtail(e1)))
+ break;
+ if (order != (ND_order(na) > ND_order(nb)))
+ return NOT(false);
+ if ((ND_in(na).size != 1) || (ND_node_type(na) == 0))
+ break;
+ e0 = (Agedge_s) ND_in(na).getFromList(0);
+ if ((ND_in(nb).size != 1) || (ND_node_type(nb) == 0))
+ break;
+ e1 = (Agedge_s) ND_in(nb).getFromList(0);
+ }
+ }
+ return false;
+} finally {
+LEAVING("f4q0oqe165s9pl5k0th5noeyv","pathscross");
+}
+}
+
+
+}
diff --git a/src/gen/lib/dotgen/fastgr__c.java b/src/gen/lib/dotgen/fastgr__c.java
new file mode 100644
index 0000000..6f9e9fe
--- /dev/null
+++ b/src/gen/lib/dotgen/fastgr__c.java
@@ -0,0 +1,1215 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * Project Info: http://plantuml.com
+ *
+ * If you like this project or if you find it useful, you can support us at:
+ *
+ * http://plantuml.com/patreon (only 1$ per month!)
+ * http://plantuml.com/paypal
+ *
+ * This file is part of Smetana.
+ * Smetana is a partial translation of Graphviz/Dot sources from C to Java.
+ *
+ * (C) Copyright 2009-2017, Arnaud Roques
+ *
+ * This translation is distributed under the same Licence as the original C program:
+ *
+ *************************************************************************
+ * Copyright (c) 2011 AT&T Intellectual Property
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: See CVS logs. Details at http://www.graphviz.org/
+ *************************************************************************
+ *
+ * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
+ * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0]
+ *
+ * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES
+ * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ *
+ * You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package gen.lib.dotgen;
+import static gen.lib.cgraph.edge__c.aghead;
+import static gen.lib.cgraph.edge__c.agtail;
+import static gen.lib.cgraph.obj__c.agroot;
+import static gen.lib.common.memory__c.zmalloc;
+import static gen.lib.dotgen.dotinit__c.dot_root;
+import static smetana.core.JUtils.EQ;
+import static smetana.core.JUtils.sizeof;
+import static smetana.core.JUtilsDebug.ENTERING;
+import static smetana.core.JUtilsDebug.LEAVING;
+import static smetana.core.Macro.AGINEDGE;
+import static smetana.core.Macro.AGNODE;
+import static smetana.core.Macro.AGOUTEDGE;
+import static smetana.core.Macro.AGSEQ;
+import static smetana.core.Macro.AGTYPE;
+import static smetana.core.Macro.ED_count;
+import static smetana.core.Macro.ED_edge_type;
+import static smetana.core.Macro.ED_head_port;
+import static smetana.core.Macro.ED_minlen;
+import static smetana.core.Macro.ED_tail_port;
+import static smetana.core.Macro.ED_to_orig;
+import static smetana.core.Macro.ED_to_virt;
+import static smetana.core.Macro.ED_weight;
+import static smetana.core.Macro.ED_xpenalty;
+import static smetana.core.Macro.GD_has_flat_edges;
+import static smetana.core.Macro.GD_n_nodes;
+import static smetana.core.Macro.GD_nlist;
+import static smetana.core.Macro.ND_UF_size;
+import static smetana.core.Macro.ND_flat_in;
+import static smetana.core.Macro.ND_flat_out;
+import static smetana.core.Macro.ND_ht;
+import static smetana.core.Macro.ND_in;
+import static smetana.core.Macro.ND_lw;
+import static smetana.core.Macro.ND_next;
+import static smetana.core.Macro.ND_node_type;
+import static smetana.core.Macro.ND_other;
+import static smetana.core.Macro.ND_out;
+import static smetana.core.Macro.ND_prev;
+import static smetana.core.Macro.ND_rw;
+import static smetana.core.Macro.NOT;
+import static smetana.core.Macro.UNSUPPORTED;
+import static smetana.core.Macro.aghead;
+import static smetana.core.Macro.agtail;
+import static smetana.core.Macro.alloc_elist;
+import static smetana.core.Macro.elist_append;
+import h.Agedge_s;
+import h.Agedgeinfo_t;
+import h.Agedgepair_s;
+import h.Agnode_s;
+import h.Agnodeinfo_t;
+import h.Agraph_s;
+import h.Agrec_s;
+import h.ST_elist;
+import h.boxf;
+import h.elist;
+import h.pointf;
+import smetana.core.JUtils;
+import smetana.core.__struct__;
+
+public class fastgr__c {
+//1 2digov3edok6d5srhgtlmrycs
+// extern lt_symlist_t lt_preloaded_symbols[]
+
+
+//1 baedz5i9est5csw3epz3cv7z
+// typedef Ppoly_t Ppolyline_t
+
+
+//1 9k44uhd5foylaeoekf3llonjq
+// extern Dtmethod_t* Dtset
+
+
+//1 1ahfywsmzcpcig2oxm7pt9ihj
+// extern Dtmethod_t* Dtbag
+
+
+//1 anhghfj3k7dmkudy2n7rvt31v
+// extern Dtmethod_t* Dtoset
+
+
+//1 5l6oj1ux946zjwvir94ykejbc
+// extern Dtmethod_t* Dtobag
+
+
+//1 2wtf222ak6cui8cfjnw6w377z
+// extern Dtmethod_t* Dtlist
+
+
+//1 d1s1s6ibtcsmst88e3057u9r7
+// extern Dtmethod_t* Dtstack
+
+
+//1 axa7mflo824p6fspjn1rdk0mt
+// extern Dtmethod_t* Dtqueue
+
+
+//1 ega812utobm4xx9oa9w9ayij6
+// extern Dtmethod_t* Dtdeque
+
+
+//1 cyfr996ur43045jv1tjbelzmj
+// extern Dtmethod_t* Dtorder
+
+
+//1 wlofoiftbjgrrabzb2brkycg
+// extern Dtmethod_t* Dttree
+
+
+//1 12bds94t7voj7ulwpcvgf6agr
+// extern Dtmethod_t* Dthash
+
+
+//1 9lqknzty480cy7zsubmabkk8h
+// extern Dtmethod_t _Dttree
+
+
+//1 bvn6zkbcp8vjdhkccqo1xrkrb
+// extern Dtmethod_t _Dthash
+
+
+//1 9lidhtd6nsmmv3e7vjv9e10gw
+// extern Dtmethod_t _Dtlist
+
+
+//1 34ujfamjxo7xn89u90oh2k6f8
+// extern Dtmethod_t _Dtqueue
+
+
+//1 3jy4aceckzkdv950h89p4wjc8
+// extern Dtmethod_t _Dtstack
+
+
+//1 8dfqgf3u1v830qzcjqh9o8ha7
+// extern Agmemdisc_t AgMemDisc
+
+
+//1 18k2oh2t6llfsdc5x0wlcnby8
+// extern Agiddisc_t AgIdDisc
+
+
+//1 a4r7hi80gdxtsv4hdoqpyiivn
+// extern Agiodisc_t AgIoDisc
+
+
+//1 bnzt5syjb7mgeru19114vd6xx
+// extern Agdisc_t AgDefaultDisc
+
+
+//1 35y2gbegsdjilegaribes00mg
+// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected
+
+
+//1 c2rygslq6bcuka3awmvy2b3ow
+// typedef Agsubnode_t Agnoderef_t
+
+
+//1 xam6yv0dcsx57dtg44igpbzn
+// typedef Dtlink_t Agedgeref_t
+
+
+//1 nye6dsi1twkbddwo9iffca1j
+// extern char *Version
+
+
+//1 65mu6k7h7lb7bx14jpiw7iyxr
+// extern char **Files
+
+
+//1 2rpjdzsdyrvomf00zcs3u3dyn
+// extern const char **Lib
+
+
+//1 6d2f111lntd2rsdt4gswh5909
+// extern char *CmdName
+
+
+//1 a0ltq04fpeg83soa05a2fkwb2
+// extern char *specificFlags
+
+
+//1 1uv30qeqq2jh6uznlr4dziv0y
+// extern char *specificItems
+
+
+//1 7i4hkvngxe3x7lmg5h6b3t9g3
+// extern char *Gvfilepath
+
+
+//1 9jp96pa73kseya3w6sulxzok6
+// extern char *Gvimagepath
+
+
+//1 40ylumfu7mrvawwf4v2asvtwk
+// extern unsigned char Verbose
+
+
+//1 93st8awjy1z0h07n28qycbaka
+// extern unsigned char Reduce
+
+
+//1 f2vs67ts992erf8onwfglurzp
+// extern int MemTest
+
+
+//1 c6f8whijgjwwagjigmxlwz3gb
+// extern char *HTTPServerEnVar
+
+
+//1 cp4hzj7p87m7arw776d3bt7aj
+// extern char *Output_file_name
+
+
+//1 a3rqagofsgraie6mx0krzkgsy
+// extern int graphviz_errors
+
+
+//1 5up05203r4kxvjn1m4njcgq5x
+// extern int Nop
+
+
+//1 umig46cco431x14b3kosde2t
+// extern double PSinputscale
+
+
+//1 52bj6v8fqz39khasobljfukk9
+// extern int Syntax_errors
+
+
+//1 9ekf2ina8fsjj6y6i0an6somj
+// extern int Show_cnt
+
+
+//1 38di5qi3nkxkq65onyvconk3r
+// extern char** Show_boxes
+
+
+//1 6ri6iu712m8mpc7t2670etpcw
+// extern int CL_type
+
+
+//1 bomxiw3gy0cgd1ydqtek7fpxr
+// extern unsigned char Concentrate
+
+
+//1 cqy3gqgcq8empdrbnrhn84058
+// extern double Epsilon
+
+
+//1 64slegfoouqeg0rmbyjrm8wgr
+// extern int MaxIter
+
+
+//1 88wdinpnmfs4mab4aw62yb0bg
+// extern int Ndim
+
+
+//1 8bbad3ogcelqnnvo5br5s05gq
+// extern int State
+
+
+//1 17rnd8q45zclfn68qqst2vxxn
+// extern int EdgeLabelsDone
+
+
+//1 ymx1z4s8cznjifl2d9f9m8jr
+// extern double Initial_dist
+
+
+//1 a33bgl0c3uqb3trx419qulj1x
+// extern double Damping
+
+
+//1 d9lvrpjg1r0ojv40pod1xwk8n
+// extern int Y_invert
+
+
+//1 71efkfs77q5tq9ex6y0f4kanh
+// extern int GvExitOnUsage
+
+
+//1 4xy2dkdkv0acs2ue9eca8hh2e
+// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin
+
+
+//1 9js5gxgzr74eakgtfhnbws3t9
+// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle
+
+
+//1 anqllp9sj7wo45w6bm11j8trn
+// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth
+
+
+//1 bh0z9puipqw7gymjd5h5b8s6i
+// extern struct fdpParms_s* fdp_parms
+
+
+
+
+//3 ciez0pfggxdljedzsbklq49f0
+// static inline point pointof(int x, int y)
+public static Object pointof(Object... arg) {
+UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x;
+UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 c1s4k85p1cdfn176o3uryeros
+// static inline pointf pointfof(double x, double y)
+public static __struct__<pointf> pointfof(double x, double y) {
+// WARNING!! STRUCT
+return pointfof_w_(x, y).copy();
+}
+private static __struct__<pointf> pointfof_w_(double x, double y) {
+ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", x);
+ r.setDouble("y", y);
+ return r;
+} finally {
+LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof");
+}
+}
+
+
+
+
+//3 7cufnfitrh935ew093mw0i4b7
+// static inline box boxof(int llx, int lly, int urx, int ury)
+public static Object boxof(Object... arg) {
+UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly;
+UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury;
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 1vvsta5i8of59frav6uymguav
+// static inline boxf boxfof(double llx, double lly, double urx, double ury)
+public static __struct__<boxf> boxfof(double llx, double lly, double urx, double ury) {
+// WARNING!! STRUCT
+return boxfof_w_(llx, lly, urx, ury).copy();
+}
+private static __struct__<boxf> boxfof_w_(double llx, double lly, double urx, double ury) {
+ENTERING("1vvsta5i8of59frav6uymguav","boxfof");
+try {
+ final __struct__<boxf> b = JUtils.from(boxf.class);
+ b.getStruct("LL").setDouble("x", llx);
+ b.getStruct("LL").setDouble("y", lly);
+ b.getStruct("UR").setDouble("x", urx);
+ b.getStruct("UR").setDouble("y", ury);
+ return b;
+} finally {
+LEAVING("1vvsta5i8of59frav6uymguav","boxfof");
+}
+}
+
+
+
+
+//3 1n5xl70wxuabyf97mclvilsm6
+// static inline point add_point(point p, point q)
+public static Object add_point(Object... arg) {
+UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x;
+UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 arrsbik9b5tnfcbzsm8gr2chx
+// static inline pointf add_pointf(pointf p, pointf q)
+public static __struct__<pointf> add_pointf(final __struct__<pointf> p, final __struct__<pointf> q) {
+// WARNING!! STRUCT
+return add_pointf_w_(p.copy(), q.copy()).copy();
+}
+private static __struct__<pointf> add_pointf_w_(final __struct__<pointf> p, final __struct__<pointf> q) {
+ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", p.getDouble("x") + q.getDouble("x"));
+ r.setDouble("y", p.getDouble("y") + q.getDouble("y"));
+ return r;
+} finally {
+LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+}
+}
+
+
+
+
+//3 ai2dprak5y6obdsflguh5qbd7
+// static inline point sub_point(point p, point q)
+public static Object sub_point(Object... arg) {
+UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 16f6pyogcv3j7n2p0n8giqqgh
+// static inline pointf sub_pointf(pointf p, pointf q)
+public static Object sub_pointf(Object... arg) {
+UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9k50jgrhc4f9824vf8ony74rw
+// static inline point mid_point(point p, point q)
+public static Object mid_point(Object... arg) {
+UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2;
+UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 59c4f7im0ftyowhnzzq2v9o1x
+// static inline pointf mid_pointf(pointf p, pointf q)
+public static Object mid_pointf(Object... arg) {
+UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.;
+UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 5r18p38gisvcx3zsvbb9saixx
+// static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+public static Object interpolate_pointf(Object... arg) {
+UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r;
+UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x);
+UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y);
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bxzrv2ghq04qk5cbyy68s4mol
+// static inline point exch_xy(point p)
+public static Object exch_xy(Object... arg) {
+UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9lt3e03tac6h6sydljrcws8fd
+// static inline pointf exch_xyf(pointf p)
+public static Object exch_xyf(Object... arg) {
+UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8l9qhieokthntzdorlu5zn29b
+// static inline box box_bb(box b0, box b1)
+public static Object box_bb(Object... arg) {
+UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 clws9h3bbjm0lw3hexf8nl4c4
+// static inline boxf boxf_bb(boxf b0, boxf b1)
+public static Object boxf_bb(Object... arg) {
+UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bit6ycxo1iqd2al92y8gkzlvb
+// static inline box box_intersect(box b0, box b1)
+public static Object box_intersect(Object... arg) {
+UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8gfybie7k6pgb3o1a6llgpwng
+// static inline boxf boxf_intersect(boxf b0, boxf b1)
+public static Object boxf_intersect(Object... arg) {
+UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 7z8j2quq65govaaejrz7b4cvb
+// static inline int box_overlap(box b0, box b1)
+public static Object box_overlap(Object... arg) {
+UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4z0suuut2acsay5m8mg9dqjdu
+// static inline int boxf_overlap(boxf b0, boxf b1)
+public static Object boxf_overlap(Object... arg) {
+UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 dd34swz5rmdgu3a2np2a4h1dy
+// static inline int box_contains(box b0, box b1)
+public static Object box_contains(Object... arg) {
+UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8laj1bspbu2i1cjd9upr7xt32
+// static inline int boxf_contains(boxf b0, boxf b1)
+public static Object boxf_contains(Object... arg) {
+UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4wf5swkz24xx51ja2dynbycu1
+// static inline pointf perp (pointf p)
+public static Object perp(Object... arg) {
+UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6dtlpzv4mvgzb9o0b252yweuv
+// static inline pointf scale (double c, pointf p)
+public static Object scale(Object... arg) {
+UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x;
+UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 econbrl314rr46qnvvw5e32j7
+// static edge_t *ffe(node_t * u, elist uL, node_t * v, elist vL)
+public static Agedge_s ffe(Agnode_s u, final ST_elist uL, Agnode_s v, final ST_elist vL) {
+// WARNING!! STRUCT
+return ffe_w_(u, uL.copy(), v, vL.copy());
+}
+private static Agedge_s ffe_w_(Agnode_s u, final ST_elist uL, Agnode_s v, final ST_elist vL) {
+ENTERING("econbrl314rr46qnvvw5e32j7","ffe");
+try {
+ int i;
+ Agedge_s e = null;
+ if ((uL.size > 0) && (vL.size > 0)) {
+ if (uL.size < vL.size) {
+ for (i = 0; (e = (Agedge_s) uL.getFromList(i))!=null; i++)
+ if (EQ(aghead(e), v))
+ break;
+ } else {
+ for (i = 0; (e = (Agedge_s) vL.getFromList(i))!=null; i++)
+ if (EQ(agtail(e), u))
+ break;
+ }
+ } else
+ e = null;
+ return e;
+} finally {
+LEAVING("econbrl314rr46qnvvw5e32j7","ffe");
+}
+}
+
+
+
+
+//3 1uygfrgur73lfy9vsjozwwupm
+// edge_t *find_fast_edge(node_t * u, node_t * v)
+public static Agedge_s find_fast_edge(Agnode_s u, Agnode_s v) {
+ENTERING("1uygfrgur73lfy9vsjozwwupm","find_fast_edge");
+try {
+ return ffe(u, ND_out(u), v, ND_in(v));
+} finally {
+LEAVING("1uygfrgur73lfy9vsjozwwupm","find_fast_edge");
+}
+}
+
+
+
+
+//3 1yw7ahdnxnexnicj552zqyyej
+// static node_t* find_fast_node(graph_t * g, node_t * n)
+public static Agnode_s find_fast_node(Agraph_s g, Agnode_s n) {
+ENTERING("1yw7ahdnxnexnicj552zqyyej","find_fast_node");
+try {
+ Agnode_s v;
+ for (v = GD_nlist(g); v!=null; v = ND_next(v))
+ if (EQ(v, n))
+ break;
+ return v;
+} finally {
+LEAVING("1yw7ahdnxnexnicj552zqyyej","find_fast_node");
+}
+}
+
+
+
+
+//3 bf1j97keudu416avridkj9fpb
+// edge_t *find_flat_edge(node_t * u, node_t * v)
+public static Agedge_s find_flat_edge(Agnode_s u, Agnode_s v) {
+ENTERING("bf1j97keudu416avridkj9fpb","find_flat_edge");
+try {
+ return ffe(u, ND_flat_out(u), v, ND_flat_in(v));
+} finally {
+LEAVING("bf1j97keudu416avridkj9fpb","find_flat_edge");
+}
+}
+
+
+
+
+//3 cttswsffgmw1g710jzvdd3wzn
+// static void safe_list_append(edge_t * e, elist * L)
+public static Object safe_list_append(Object... arg) {
+UNSUPPORTED("59dl3yc4jbcy2pb7j1njhlybi"); // static void
+UNSUPPORTED("3kdqf9wvozj4zu6wrv6ur2k47"); // safe_list_append(edge_t * e, elist * L)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i;
+UNSUPPORTED("dhvbzrcz6s76mme3x94begmvr"); // for (i = 0; i < L->size; i++)
+UNSUPPORTED("c0a4ruccwt5263vw39xrttm0y"); // if (e == L->list[i])
+UNSUPPORTED("6cprbghvenu9ldc0ez1ifc63q"); // return;
+UNSUPPORTED("cslejjtgepjdwlcykfas4fmvz"); // elist_append(e, (*L));
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8t6gpubo908pz1pqnt1s88lnt
+// edge_t *fast_edge(edge_t * e)
+public static Agedge_s fast_edge(Agedge_s e) {
+ENTERING("8t6gpubo908pz1pqnt1s88lnt","fast_edge");
+try {
+ elist_append(e, ND_out(agtail(e)));
+ elist_append(e, ND_in(aghead(e)));
+ return e;
+} finally {
+LEAVING("8t6gpubo908pz1pqnt1s88lnt","fast_edge");
+}
+}
+
+
+
+
+//3 dxb0q8ajb7iv25aj6zdqnbwh5
+// void zapinlist(elist * L, edge_t * e)
+public static void zapinlist(elist L, Agedge_s e) {
+ENTERING("dxb0q8ajb7iv25aj6zdqnbwh5","zapinlist");
+try {
+ int i;
+ for (i = 0; i < L.getInt("size"); i++) {
+ if (EQ(L.getArrayOfPtr("list").plus(i).getPtr(), e)) {
+ L.setInt("size", L.getInt("size")-1);
+ L.getArrayOfPtr("list").plus(i).setPtr(L.getArrayOfPtr("list").plus(L.getInt("size")).getPtr());
+ L.getArrayOfPtr("list").plus(L.getInt("size")).setPtr(null);
+ break;
+ }
+ }
+} finally {
+LEAVING("dxb0q8ajb7iv25aj6zdqnbwh5","zapinlist");
+}
+}
+
+
+
+
+//3 dkv97rr4ytpehp291etaxe9gc
+// void delete_fast_edge(edge_t * e)
+public static void delete_fast_edge(Agedge_s e) {
+ENTERING("dkv97rr4ytpehp291etaxe9gc","delete_fast_edge");
+try {
+ //assert(e != NULL);
+ zapinlist((ND_out(agtail(e))).amp(), e);
+ zapinlist((ND_in(aghead(e))).amp(), e);
+} finally {
+LEAVING("dkv97rr4ytpehp291etaxe9gc","delete_fast_edge");
+}
+}
+
+
+
+
+//3 b8a9hlxts1y43x7r4f31vwee6
+// static void safe_delete_fast_edge(edge_t * e)
+public static Object safe_delete_fast_edge(Object... arg) {
+UNSUPPORTED("59dl3yc4jbcy2pb7j1njhlybi"); // static void
+UNSUPPORTED("bw8hdfe3bql5qxhdyxjh12iaf"); // safe_delete_fast_edge(edge_t * e)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i;
+UNSUPPORTED("6ag74vz3kjmohe4bp89fktey4"); // edge_t *f;
+UNSUPPORTED("axei6r4pdvrumkaqc9p82yzjh"); // assert(e != NULL);
+UNSUPPORTED("f10apexer8zzjd53hdc3kc6l5"); // for (i = 0; (f = ND_out(agtail(e)).list[i]); i++)
+UNSUPPORTED("dibajtvzac9fny0wd51x9jto8"); // if (f == e)
+UNSUPPORTED("8jj8ar5kwgfuzsk5nd6eyfcmc"); // zapinlist(&(ND_out(agtail(e))), e);
+UNSUPPORTED("7h2ym5qzjdgt4gg6uscho1z1e"); // for (i = 0; (f = ND_in(aghead(e)).list[i]); i++)
+UNSUPPORTED("dibajtvzac9fny0wd51x9jto8"); // if (f == e)
+UNSUPPORTED("dyemtglp4tpava0oysdm66am8"); // zapinlist(&(ND_in(aghead(e))), e);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 73oebfcfiescklohgt8mddswc
+// void other_edge(edge_t * e)
+public static void other_edge(Agedge_s e) {
+ENTERING("73oebfcfiescklohgt8mddswc","other_edge");
+try {
+ elist_append(e, ND_other(agtail(e)));
+} finally {
+LEAVING("73oebfcfiescklohgt8mddswc","other_edge");
+}
+}
+
+
+
+
+//3 4zg1fp1b7bhnx2tbeaij8yeel
+// void safe_other_edge(edge_t * e)
+public static Object safe_other_edge(Object... arg) {
+UNSUPPORTED("3cc9ux78ad0yjajm0nkpos345"); // void safe_other_edge(edge_t * e)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("bn816jsdz3qke6htvbwvztrpc"); // safe_list_append(e, &(ND_other(agtail(e))));
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4gd9tmpq70q0rij5otj0k6sn2
+// edge_t *new_virtual_edge(node_t * u, node_t * v, edge_t * orig)
+public static Agedge_s new_virtual_edge(Agnode_s u, Agnode_s v, Agedge_s orig) {
+ENTERING("4gd9tmpq70q0rij5otj0k6sn2","new_virtual_edge");
+try {
+ Agedge_s e;
+ Agedgepair_s e2 = (Agedgepair_s)zmalloc(sizeof(Agedgepair_s.class));
+ AGTYPE(e2.getStruct("in").amp(), AGINEDGE);
+ AGTYPE(e2.getStruct("out").amp(), AGOUTEDGE);
+ e2.getStruct("out").getStruct("base").setPtr("data", zmalloc(sizeof(Agedgeinfo_t.class)).castTo(Agedgeinfo_t.class).castTo(Agrec_s.class));
+ e = (Agedge_s) e2.getStruct("out").amp();
+ agtail(e, u);
+ aghead(e, v);
+ ED_edge_type(e, 1);
+ if (orig!=null) {
+ AGSEQ(e, AGSEQ(orig));
+ AGSEQ(e2.getStruct("in").amp(), AGSEQ(orig));
+ ED_count(e, ED_count(orig));
+ ED_xpenalty(e, ED_xpenalty(orig));
+ ED_weight(e, ED_weight(orig));
+ ED_minlen(e, ED_minlen(orig));
+ if (EQ(agtail(e), agtail(orig)))
+ ED_tail_port(e, ED_tail_port(orig));
+ else if (EQ(agtail(e), aghead(orig)))
+ ED_tail_port(e, ED_head_port(orig));
+ if (EQ(aghead(e), aghead(orig)))
+ ED_head_port(e, ED_head_port(orig));
+ else if (EQ(aghead(e), agtail(orig)))
+ ED_head_port(e, ED_tail_port(orig));
+ if (ED_to_virt(orig) == null)
+ ED_to_virt(orig, e);
+ ED_to_orig(e, orig);
+ } else {
+ ED_minlen(e, 1);
+ ED_count(e, 1);
+ ED_xpenalty(e, 1);
+ ED_weight(e, 1);
+ }
+ return e;
+} finally {
+LEAVING("4gd9tmpq70q0rij5otj0k6sn2","new_virtual_edge");
+}
+}
+
+
+
+
+//3 9obdfflzw4cs2z9r0dng26mvw
+// edge_t *virtual_edge(node_t * u, node_t * v, edge_t * orig)
+public static Agedge_s virtual_edge(Agnode_s u, Agnode_s v, Agedge_s orig) {
+ENTERING("9obdfflzw4cs2z9r0dng26mvw","virtual_edge");
+try {
+ return fast_edge(new_virtual_edge(u, v, orig));
+} finally {
+LEAVING("9obdfflzw4cs2z9r0dng26mvw","virtual_edge");
+}
+}
+
+
+
+
+//3 98hkec8t6fjk10bjpstumw0ey
+// void fast_node(graph_t * g, Agnode_t * n)
+public static void fast_node(Agraph_s g, Agnode_s n) {
+ENTERING("98hkec8t6fjk10bjpstumw0ey","fast_node");
+try {
+ ND_next(n, GD_nlist(g));
+ if (ND_next(n)!=null)
+ ND_prev(ND_next(n), n);
+ GD_nlist(g, n);
+ ND_prev(n, null);
+ //assert(n != ND_next(n));
+} finally {
+LEAVING("98hkec8t6fjk10bjpstumw0ey","fast_node");
+}
+}
+
+
+
+
+//3 66jdzhjfa6kx3ntfyl5t7cehm
+// void fast_nodeapp(node_t * u, node_t * v)
+public static Object fast_nodeapp(Object... arg) {
+UNSUPPORTED("24rf80znlmwn6xx6m03vqyykr"); // void fast_nodeapp(node_t * u, node_t * v)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("8g450a5aruflexr2yn977dnjz"); // assert(u != v);
+UNSUPPORTED("dw67xh0kd304grgqkgiffmejh"); // assert(ND_next(v) == NULL);
+UNSUPPORTED("1tm9zh31fbm0sufjyg78ke83i"); // ND_next(v) = ND_next(u);
+UNSUPPORTED("cswodtimhknr7wxlbmhxfzutw"); // if (ND_next(u))
+UNSUPPORTED("7aukr7lwtj4wnis5h9ciserpd"); // ND_prev(ND_next(u)) = v;
+UNSUPPORTED("6oaowqmk3llh0vp3h096bo6nq"); // ND_prev(v) = u;
+UNSUPPORTED("5ymiaen2fr7qzsn4uotyf2eqy"); // ND_next(u) = v;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 emsq7b6s5100lscckzy3ileqd
+// void delete_fast_node(graph_t * g, node_t * n)
+public static void delete_fast_node(Agraph_s g, Agnode_s n) {
+ENTERING("emsq7b6s5100lscckzy3ileqd","delete_fast_node");
+try {
+ assert(find_fast_node(g, n)!=null);
+ if (ND_next(n)!=null)
+ ND_prev(ND_next(n), ND_prev(n));
+ if (ND_prev(n)!=null)
+ ND_next(ND_prev(n), ND_next(n));
+ else
+ GD_nlist(g, ND_next(n));
+} finally {
+LEAVING("emsq7b6s5100lscckzy3ileqd","delete_fast_node");
+}
+}
+
+
+
+
+//3 eg08ajzojsm0224btmfi7kdxt
+// node_t *virtual_node(graph_t * g)
+public static Agnode_s virtual_node(Agraph_s g) {
+ENTERING("eg08ajzojsm0224btmfi7kdxt","virtual_node");
+try {
+ Agnode_s n;
+ n = (Agnode_s)zmalloc(sizeof(Agnode_s.class));
+// agnameof(n) = "virtual";
+ AGTYPE(n, AGNODE);
+ n.getStruct("base").setPtr("data", (Agnodeinfo_t)zmalloc(sizeof(Agnodeinfo_t.class)));
+ n.setPtr("root", agroot(g));
+ ND_node_type(n, 1);
+ ND_rw(n, 1);
+ ND_lw(n, 1);
+ ND_ht(n, 1);
+ ND_UF_size(n, 1);
+ alloc_elist(4, ND_in(n), Agnode_s.class);
+ alloc_elist(4, ND_out(n), Agnode_s.class);
+ fast_node(g, n);
+ GD_n_nodes(g, GD_n_nodes(g)+1);
+ return n;
+} finally {
+LEAVING("eg08ajzojsm0224btmfi7kdxt","virtual_node");
+}
+}
+
+
+
+
+//3 8dvukicq96g5t3xgdl0ue35mj
+// void flat_edge(graph_t * g, edge_t * e)
+public static void flat_edge(Agraph_s g, Agedge_s e) {
+ENTERING("8dvukicq96g5t3xgdl0ue35mj","flat_edge");
+try {
+ elist_append(e, ND_flat_out(agtail(e)));
+ elist_append(e, ND_flat_in(aghead(e)));
+ GD_has_flat_edges(g, NOT(false));
+ GD_has_flat_edges(dot_root(g), NOT(false));
+} finally {
+LEAVING("8dvukicq96g5t3xgdl0ue35mj","flat_edge");
+}
+}
+
+
+
+
+//3 clspalhiuedfnk9g9rlvfqpg7
+// void delete_flat_edge(edge_t * e)
+public static void delete_flat_edge(Agedge_s e) {
+ENTERING("clspalhiuedfnk9g9rlvfqpg7","delete_flat_edge");
+try {
+ assert(e != null);
+ if (ED_to_orig(e)!=null && EQ(ED_to_virt(ED_to_orig(e)), e))
+ ED_to_virt(ED_to_orig(e), null);
+ zapinlist((ND_flat_out(agtail(e))).amp(), e);
+ zapinlist((ND_flat_in(aghead(e))).amp(), e);
+} finally {
+LEAVING("clspalhiuedfnk9g9rlvfqpg7","delete_flat_edge");
+}
+}
+
+
+
+
+//3 dcfpol11cvlt6aaa6phqbp6fo
+// static void basic_merge(edge_t * e, edge_t * rep)
+public static void basic_merge(Agedge_s e, Agedge_s rep) {
+ENTERING("dcfpol11cvlt6aaa6phqbp6fo","basic_merge");
+try {
+ if (ED_minlen(rep) < ED_minlen(e))
+ ED_minlen(rep, ED_minlen(e));
+ while (rep!=null) {
+ ED_count(rep, ED_count(rep) + ED_count(e));
+ ED_xpenalty(rep, ED_xpenalty(rep) +ED_xpenalty(e));
+ ED_weight(rep, ED_weight(rep) + ED_weight(e));
+ rep = ED_to_virt(rep);
+ }
+} finally {
+LEAVING("dcfpol11cvlt6aaa6phqbp6fo","basic_merge");
+}
+}
+
+
+
+
+//3 6dxgtoii76tmonlnvz4rmiytd
+// void merge_oneway(edge_t * e, edge_t * rep)
+public static void merge_oneway(Agedge_s e, Agedge_s rep) {
+ENTERING("6dxgtoii76tmonlnvz4rmiytd","merge_oneway");
+try {
+ if (EQ(rep, ED_to_virt(e))) {
+UNSUPPORTED("84xxsh1cgsif42hgizyxw36ul"); // agerr(AGWARN, "merge_oneway glitch\n");
+UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return;
+ }
+ //assert(ED_to_virt(e) == NULL);
+ ED_to_virt(e, rep);
+ basic_merge(e, rep);
+} finally {
+LEAVING("6dxgtoii76tmonlnvz4rmiytd","merge_oneway");
+}
+}
+
+
+
+
+//3 656h1u18x3gommk50i4bak8wi
+// static void unrep(edge_t * rep, edge_t * e)
+public static Object unrep(Object... arg) {
+UNSUPPORTED("59dl3yc4jbcy2pb7j1njhlybi"); // static void
+UNSUPPORTED("1cysdqgx90krtmp6pc8358byz"); // unrep(edge_t * rep, edge_t * e)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("az4p9xxo3dhparzmtf3co61n"); // ED_count(rep) -= ED_count(e);
+UNSUPPORTED("bf8f3cgvxc5n9ixbj4d1z94r0"); // ED_xpenalty(rep) -= ED_xpenalty(e);
+UNSUPPORTED("5m9h7kqjxjgizf3o1i6udm3c5"); // ED_weight(rep) -= ED_weight(e);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 62io7qyqg9kqthfkbotnjdq49
+// void unmerge_oneway(edge_t * e)
+public static Object unmerge_oneway(Object... arg) {
+UNSUPPORTED("3rlflkkd29cm53ssikvrqx06v"); // void unmerge_oneway(edge_t * e)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("3we8ga4x5k2sj4s20xlwumjq5"); // edge_t *rep, *nextrep;
+UNSUPPORTED("e23vpxy61ysfsjvp3u2boafhb"); // for (rep = ED_to_virt(e); rep; rep = nextrep) {
+UNSUPPORTED("bifyf7jydjlvj8u8hc9tqwutm"); // unrep(rep, e);
+UNSUPPORTED("eyjz7xjwxabdlqhyvuzfkks49"); // nextrep = ED_to_virt(rep);
+UNSUPPORTED("4h71tbcobl3o6put6h58thpgu"); // if (ED_count(rep) == 0)
+UNSUPPORTED("c87nxr35m1again4xqc8x4rhh"); // safe_delete_fast_edge(rep); /* free(rep)? */
+UNSUPPORTED("9np2sz8r74ucvij23elgzxkr4"); // /* unmerge from a virtual edge chain */
+UNSUPPORTED("5wohy8hhosadqtj6712ufa10t"); // while ((ED_edge_type(rep) == 1)
+UNSUPPORTED("9nortwuccpr0jx3z027d2jcyh"); // && (ND_node_type(aghead(rep)) == 1)
+UNSUPPORTED("drowv2sbxmbe2b6632mn3luww"); // && (ND_out(aghead(rep)).size == 1)) {
+UNSUPPORTED("6f9b53obe00vhcbxj865xc57u"); // rep = ND_out(aghead(rep)).list[0];
+UNSUPPORTED("11fxzls2ru6go1mcuza6i8zhv"); // unrep(rep, e);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("bm31ww0y2fu2w9n5nyi04ad76"); // ED_to_virt(e) = NULL;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+}
diff --git a/src/gen/lib/dotgen/flat__c.java b/src/gen/lib/dotgen/flat__c.java
new file mode 100644
index 0000000..a3e79f3
--- /dev/null
+++ b/src/gen/lib/dotgen/flat__c.java
@@ -0,0 +1,1099 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * Project Info: http://plantuml.com
+ *
+ * If you like this project or if you find it useful, you can support us at:
+ *
+ * http://plantuml.com/patreon (only 1$ per month!)
+ * http://plantuml.com/paypal
+ *
+ * This file is part of Smetana.
+ * Smetana is a partial translation of Graphviz/Dot sources from C to Java.
+ *
+ * (C) Copyright 2009-2017, Arnaud Roques
+ *
+ * This translation is distributed under the same Licence as the original C program:
+ *
+ *************************************************************************
+ * Copyright (c) 2011 AT&T Intellectual Property
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: See CVS logs. Details at http://www.graphviz.org/
+ *************************************************************************
+ *
+ * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
+ * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0]
+ *
+ * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES
+ * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ *
+ * You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package gen.lib.dotgen;
+import static gen.lib.cgraph.edge__c.aghead;
+import static gen.lib.cgraph.edge__c.agtail;
+import static gen.lib.common.memory__c.zmalloc;
+import static gen.lib.dotgen.dotinit__c.dot_root;
+import static gen.lib.dotgen.fastgr__c.virtual_edge;
+import static gen.lib.dotgen.fastgr__c.virtual_node;
+import static gen.lib.dotgen.mincross__c.rec_reset_vlists;
+import static gen.lib.dotgen.mincross__c.rec_save_vlists;
+import static smetana.core.JUtils.EQ;
+import static smetana.core.JUtils.sizeof_starstar_empty;
+import static smetana.core.JUtilsDebug.ENTERING;
+import static smetana.core.JUtilsDebug.LEAVING;
+import static smetana.core.Macro.ALLOC;
+import static smetana.core.Macro.ED_adjacent;
+import static smetana.core.Macro.ED_dist;
+import static smetana.core.Macro.ED_edge_type;
+import static smetana.core.Macro.ED_head_port;
+import static smetana.core.Macro.ED_label;
+import static smetana.core.Macro.ED_tail_port;
+import static smetana.core.Macro.ED_to_virt;
+import static smetana.core.Macro.GD_flip;
+import static smetana.core.Macro.GD_maxrank;
+import static smetana.core.Macro.GD_minrank;
+import static smetana.core.Macro.GD_n_cluster;
+import static smetana.core.Macro.GD_nlist;
+import static smetana.core.Macro.GD_rank;
+import static smetana.core.Macro.GD_ranksep;
+import static smetana.core.Macro.MAX;
+import static smetana.core.Macro.N;
+import static smetana.core.Macro.ND_alg;
+import static smetana.core.Macro.ND_coord;
+import static smetana.core.Macro.ND_flat_in;
+import static smetana.core.Macro.ND_flat_out;
+import static smetana.core.Macro.ND_ht;
+import static smetana.core.Macro.ND_in;
+import static smetana.core.Macro.ND_label;
+import static smetana.core.Macro.ND_lw;
+import static smetana.core.Macro.ND_next;
+import static smetana.core.Macro.ND_node_type;
+import static smetana.core.Macro.ND_order;
+import static smetana.core.Macro.ND_other;
+import static smetana.core.Macro.ND_out;
+import static smetana.core.Macro.ND_rank;
+import static smetana.core.Macro.ND_rw;
+import static smetana.core.Macro.NOT;
+import static smetana.core.Macro.UNSUPPORTED;
+import h.Agedge_s;
+import h.Agnode_s;
+import h.Agraph_s;
+import h.boxf;
+import h.pointf;
+import h.rank_t;
+import smetana.core.JUtils;
+import smetana.core.__ptr__;
+import smetana.core.__struct__;
+
+public class flat__c {
+//1 2digov3edok6d5srhgtlmrycs
+// extern lt_symlist_t lt_preloaded_symbols[]
+
+
+//1 baedz5i9est5csw3epz3cv7z
+// typedef Ppoly_t Ppolyline_t
+
+
+//1 9k44uhd5foylaeoekf3llonjq
+// extern Dtmethod_t* Dtset
+
+
+//1 1ahfywsmzcpcig2oxm7pt9ihj
+// extern Dtmethod_t* Dtbag
+
+
+//1 anhghfj3k7dmkudy2n7rvt31v
+// extern Dtmethod_t* Dtoset
+
+
+//1 5l6oj1ux946zjwvir94ykejbc
+// extern Dtmethod_t* Dtobag
+
+
+//1 2wtf222ak6cui8cfjnw6w377z
+// extern Dtmethod_t* Dtlist
+
+
+//1 d1s1s6ibtcsmst88e3057u9r7
+// extern Dtmethod_t* Dtstack
+
+
+//1 axa7mflo824p6fspjn1rdk0mt
+// extern Dtmethod_t* Dtqueue
+
+
+//1 ega812utobm4xx9oa9w9ayij6
+// extern Dtmethod_t* Dtdeque
+
+
+//1 cyfr996ur43045jv1tjbelzmj
+// extern Dtmethod_t* Dtorder
+
+
+//1 wlofoiftbjgrrabzb2brkycg
+// extern Dtmethod_t* Dttree
+
+
+//1 12bds94t7voj7ulwpcvgf6agr
+// extern Dtmethod_t* Dthash
+
+
+//1 9lqknzty480cy7zsubmabkk8h
+// extern Dtmethod_t _Dttree
+
+
+//1 bvn6zkbcp8vjdhkccqo1xrkrb
+// extern Dtmethod_t _Dthash
+
+
+//1 9lidhtd6nsmmv3e7vjv9e10gw
+// extern Dtmethod_t _Dtlist
+
+
+//1 34ujfamjxo7xn89u90oh2k6f8
+// extern Dtmethod_t _Dtqueue
+
+
+//1 3jy4aceckzkdv950h89p4wjc8
+// extern Dtmethod_t _Dtstack
+
+
+//1 8dfqgf3u1v830qzcjqh9o8ha7
+// extern Agmemdisc_t AgMemDisc
+
+
+//1 18k2oh2t6llfsdc5x0wlcnby8
+// extern Agiddisc_t AgIdDisc
+
+
+//1 a4r7hi80gdxtsv4hdoqpyiivn
+// extern Agiodisc_t AgIoDisc
+
+
+//1 bnzt5syjb7mgeru19114vd6xx
+// extern Agdisc_t AgDefaultDisc
+
+
+//1 35y2gbegsdjilegaribes00mg
+// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected
+
+
+//1 c2rygslq6bcuka3awmvy2b3ow
+// typedef Agsubnode_t Agnoderef_t
+
+
+//1 xam6yv0dcsx57dtg44igpbzn
+// typedef Dtlink_t Agedgeref_t
+
+
+//1 nye6dsi1twkbddwo9iffca1j
+// extern char *Version
+
+
+//1 65mu6k7h7lb7bx14jpiw7iyxr
+// extern char **Files
+
+
+//1 2rpjdzsdyrvomf00zcs3u3dyn
+// extern const char **Lib
+
+
+//1 6d2f111lntd2rsdt4gswh5909
+// extern char *CmdName
+
+
+//1 a0ltq04fpeg83soa05a2fkwb2
+// extern char *specificFlags
+
+
+//1 1uv30qeqq2jh6uznlr4dziv0y
+// extern char *specificItems
+
+
+//1 7i4hkvngxe3x7lmg5h6b3t9g3
+// extern char *Gvfilepath
+
+
+//1 9jp96pa73kseya3w6sulxzok6
+// extern char *Gvimagepath
+
+
+//1 40ylumfu7mrvawwf4v2asvtwk
+// extern unsigned char Verbose
+
+
+//1 93st8awjy1z0h07n28qycbaka
+// extern unsigned char Reduce
+
+
+//1 f2vs67ts992erf8onwfglurzp
+// extern int MemTest
+
+
+//1 c6f8whijgjwwagjigmxlwz3gb
+// extern char *HTTPServerEnVar
+
+
+//1 cp4hzj7p87m7arw776d3bt7aj
+// extern char *Output_file_name
+
+
+//1 a3rqagofsgraie6mx0krzkgsy
+// extern int graphviz_errors
+
+
+//1 5up05203r4kxvjn1m4njcgq5x
+// extern int Nop
+
+
+//1 umig46cco431x14b3kosde2t
+// extern double PSinputscale
+
+
+//1 52bj6v8fqz39khasobljfukk9
+// extern int Syntax_errors
+
+
+//1 9ekf2ina8fsjj6y6i0an6somj
+// extern int Show_cnt
+
+
+//1 38di5qi3nkxkq65onyvconk3r
+// extern char** Show_boxes
+
+
+//1 6ri6iu712m8mpc7t2670etpcw
+// extern int CL_type
+
+
+//1 bomxiw3gy0cgd1ydqtek7fpxr
+// extern unsigned char Concentrate
+
+
+//1 cqy3gqgcq8empdrbnrhn84058
+// extern double Epsilon
+
+
+//1 64slegfoouqeg0rmbyjrm8wgr
+// extern int MaxIter
+
+
+//1 88wdinpnmfs4mab4aw62yb0bg
+// extern int Ndim
+
+
+//1 8bbad3ogcelqnnvo5br5s05gq
+// extern int State
+
+
+//1 17rnd8q45zclfn68qqst2vxxn
+// extern int EdgeLabelsDone
+
+
+//1 ymx1z4s8cznjifl2d9f9m8jr
+// extern double Initial_dist
+
+
+//1 a33bgl0c3uqb3trx419qulj1x
+// extern double Damping
+
+
+//1 d9lvrpjg1r0ojv40pod1xwk8n
+// extern int Y_invert
+
+
+//1 71efkfs77q5tq9ex6y0f4kanh
+// extern int GvExitOnUsage
+
+
+//1 4xy2dkdkv0acs2ue9eca8hh2e
+// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin
+
+
+//1 9js5gxgzr74eakgtfhnbws3t9
+// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle
+
+
+//1 anqllp9sj7wo45w6bm11j8trn
+// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth
+
+
+//1 bh0z9puipqw7gymjd5h5b8s6i
+// extern struct fdpParms_s* fdp_parms
+
+
+
+
+//3 ciez0pfggxdljedzsbklq49f0
+// static inline point pointof(int x, int y)
+public static Object pointof(Object... arg) {
+UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x;
+UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 c1s4k85p1cdfn176o3uryeros
+// static inline pointf pointfof(double x, double y)
+public static __struct__<pointf> pointfof(double x, double y) {
+// WARNING!! STRUCT
+return pointfof_w_(x, y).copy();
+}
+private static __struct__<pointf> pointfof_w_(double x, double y) {
+ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", x);
+ r.setDouble("y", y);
+ return r;
+} finally {
+LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof");
+}
+}
+
+
+
+
+//3 7cufnfitrh935ew093mw0i4b7
+// static inline box boxof(int llx, int lly, int urx, int ury)
+public static Object boxof(Object... arg) {
+UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly;
+UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury;
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 1vvsta5i8of59frav6uymguav
+// static inline boxf boxfof(double llx, double lly, double urx, double ury)
+public static __struct__<boxf> boxfof(double llx, double lly, double urx, double ury) {
+// WARNING!! STRUCT
+return boxfof_w_(llx, lly, urx, ury).copy();
+}
+private static __struct__<boxf> boxfof_w_(double llx, double lly, double urx, double ury) {
+ENTERING("1vvsta5i8of59frav6uymguav","boxfof");
+try {
+ final __struct__<boxf> b = JUtils.from(boxf.class);
+ b.getStruct("LL").setDouble("x", llx);
+ b.getStruct("LL").setDouble("y", lly);
+ b.getStruct("UR").setDouble("x", urx);
+ b.getStruct("UR").setDouble("y", ury);
+ return b;
+} finally {
+LEAVING("1vvsta5i8of59frav6uymguav","boxfof");
+}
+}
+
+
+
+
+//3 1n5xl70wxuabyf97mclvilsm6
+// static inline point add_point(point p, point q)
+public static Object add_point(Object... arg) {
+UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x;
+UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 arrsbik9b5tnfcbzsm8gr2chx
+// static inline pointf add_pointf(pointf p, pointf q)
+public static __struct__<pointf> add_pointf(final __struct__<pointf> p, final __struct__<pointf> q) {
+// WARNING!! STRUCT
+return add_pointf_w_(p.copy(), q.copy()).copy();
+}
+private static __struct__<pointf> add_pointf_w_(final __struct__<pointf> p, final __struct__<pointf> q) {
+ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", p.getDouble("x") + q.getDouble("x"));
+ r.setDouble("y", p.getDouble("y") + q.getDouble("y"));
+ return r;
+} finally {
+LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+}
+}
+
+
+
+
+//3 ai2dprak5y6obdsflguh5qbd7
+// static inline point sub_point(point p, point q)
+public static Object sub_point(Object... arg) {
+UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 16f6pyogcv3j7n2p0n8giqqgh
+// static inline pointf sub_pointf(pointf p, pointf q)
+public static Object sub_pointf(Object... arg) {
+UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9k50jgrhc4f9824vf8ony74rw
+// static inline point mid_point(point p, point q)
+public static Object mid_point(Object... arg) {
+UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2;
+UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 59c4f7im0ftyowhnzzq2v9o1x
+// static inline pointf mid_pointf(pointf p, pointf q)
+public static Object mid_pointf(Object... arg) {
+UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.;
+UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 5r18p38gisvcx3zsvbb9saixx
+// static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+public static Object interpolate_pointf(Object... arg) {
+UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r;
+UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x);
+UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y);
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bxzrv2ghq04qk5cbyy68s4mol
+// static inline point exch_xy(point p)
+public static Object exch_xy(Object... arg) {
+UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9lt3e03tac6h6sydljrcws8fd
+// static inline pointf exch_xyf(pointf p)
+public static Object exch_xyf(Object... arg) {
+UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8l9qhieokthntzdorlu5zn29b
+// static inline box box_bb(box b0, box b1)
+public static Object box_bb(Object... arg) {
+UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 clws9h3bbjm0lw3hexf8nl4c4
+// static inline boxf boxf_bb(boxf b0, boxf b1)
+public static Object boxf_bb(Object... arg) {
+UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bit6ycxo1iqd2al92y8gkzlvb
+// static inline box box_intersect(box b0, box b1)
+public static Object box_intersect(Object... arg) {
+UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8gfybie7k6pgb3o1a6llgpwng
+// static inline boxf boxf_intersect(boxf b0, boxf b1)
+public static Object boxf_intersect(Object... arg) {
+UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 7z8j2quq65govaaejrz7b4cvb
+// static inline int box_overlap(box b0, box b1)
+public static Object box_overlap(Object... arg) {
+UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4z0suuut2acsay5m8mg9dqjdu
+// static inline int boxf_overlap(boxf b0, boxf b1)
+public static Object boxf_overlap(Object... arg) {
+UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 dd34swz5rmdgu3a2np2a4h1dy
+// static inline int box_contains(box b0, box b1)
+public static Object box_contains(Object... arg) {
+UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8laj1bspbu2i1cjd9upr7xt32
+// static inline int boxf_contains(boxf b0, boxf b1)
+public static Object boxf_contains(Object... arg) {
+UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4wf5swkz24xx51ja2dynbycu1
+// static inline pointf perp (pointf p)
+public static Object perp(Object... arg) {
+UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6dtlpzv4mvgzb9o0b252yweuv
+// static inline pointf scale (double c, pointf p)
+public static Object scale(Object... arg) {
+UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x;
+UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 e0gtvsxlvztmwu8yy44wfvf97
+// static node_t *make_vn_slot(graph_t * g, int r, int pos)
+public static Agnode_s make_vn_slot(Agraph_s g, int r, int pos) {
+ENTERING("e0gtvsxlvztmwu8yy44wfvf97","make_vn_slot");
+try {
+ int i;
+ __ptr__ v;
+ Agnode_s n;
+ v = ALLOC(GD_rank(g).plus(r).getInt("n") + 2, GD_rank(g).plus(r).getPtr("v"), Agnode_s.class);
+ GD_rank(g).plus(r).setPtr("v", v);
+ for (i = GD_rank(g).plus(r).getInt("n"); i > pos; i--) {
+ v.plus(i).setPtr(v.plus(i - 1).getPtr());
+ ND_order(v.plus(i).getPtr(), ND_order(v.plus(i).getPtr())+1);
+ }
+ n = virtual_node(g);
+ v.plus(pos).setPtr(n);
+ ND_order(n, pos);
+ ND_rank(n, r);
+ GD_rank(g).plus(r).setInt("n", GD_rank(g).plus(r).getInt("n")+1);
+ v.plus(GD_rank(g).plus(r).getInt("n")).setPtr(null);
+ return (Agnode_s) v.plus(pos).getPtr();
+} finally {
+LEAVING("e0gtvsxlvztmwu8yy44wfvf97","make_vn_slot");
+}
+}
+
+
+
+
+//3 d64wt9oqphauv3hp4axbg2ep3
+// static void findlr(node_t * u, node_t * v, int *lp, int *rp)
+public static void findlr(Agnode_s u, Agnode_s v, int lp[], int rp[]) {
+ENTERING("d64wt9oqphauv3hp4axbg2ep3","findlr");
+try {
+ int l, r;
+ l = ND_order(u);
+ r = ND_order(v);
+ if (l > r) {
+ int t = l;
+ l = r;
+ r = t;
+ }
+ lp[0] = l;
+ rp[0] = r;
+} finally {
+LEAVING("d64wt9oqphauv3hp4axbg2ep3","findlr");
+}
+}
+
+
+
+
+//3 bwjjmaydx5a2fnpeoligkha0r
+// static void setbounds(node_t * v, int *bounds, int lpos, int rpos)
+public static void setbounds(Agnode_s v, int bounds[], int lpos[], int rpos[]) {
+ENTERING("bwjjmaydx5a2fnpeoligkha0r","setbounds");
+try {
+ int i, ord;
+ int[] l = new int[1], r = new int[1];
+ Agedge_s f;
+ if (ND_node_type(v) == 1) {
+ ord = ND_order(v);
+ if (ND_in(v).size == 0) { /* flat */
+ assert(ND_out(v).size == 2);
+ findlr((Agnode_s) aghead(ND_out(v).getFromList(0)), (Agnode_s) aghead(ND_out(v).getFromList(1)), l,
+ r);
+ /* the other flat edge could be to the left or right */
+ if (r[0] <= lpos[0])
+ bounds[2] = bounds[0] = ord;
+ else if (l[0] >= rpos[0])
+ bounds[3] = bounds[1] = ord;
+ /* could be spanning this one */
+ else if ((l[0] < lpos[0]) && (r[0] > rpos[0])); /* ignore */
+ /* must have intersecting ranges */
+ else {
+ if ((l[0] < lpos[0]) || ((l[0] == lpos[0]) && (r[0] < rpos[0])))
+ bounds[2] = ord;
+ if ((r[0] > rpos[0]) || ((r[0] == rpos[0]) && (l[0] > lpos[0])))
+ bounds[3] = ord;
+ }
+ } else { /* forward */
+ boolean onleft, onright;
+ onleft = onright = false;
+ for (i = 0; (f = (Agedge_s) ND_out(v).getFromList(i))!=null; i++) {
+ if (ND_order(aghead(f)) <= lpos[0]) {
+ onleft = NOT(false);
+ continue;
+ }
+ if (ND_order(aghead(f)) >= rpos[0]) {
+ onright = NOT(false);
+ continue;
+ }
+ }
+ if (onleft && (onright == false))
+ bounds[0] = ord + 1;
+ if (onright && (onleft == false))
+ bounds[1] = ord - 1;
+ }
+ }
+} finally {
+LEAVING("bwjjmaydx5a2fnpeoligkha0r","setbounds");
+}
+}
+
+
+
+
+//3 3bc4otcsxj1dujj49ydbb19oa
+// static int flat_limits(graph_t * g, edge_t * e)
+public static int flat_limits(Agraph_s g, Agedge_s e) {
+ENTERING("3bc4otcsxj1dujj49ydbb19oa","flat_limits");
+try {
+ int lnode, rnode, r, pos;
+ int[] lpos = new int[1], rpos = new int[1];
+ int bounds[] = new int[4];
+ __ptr__ rank;
+ r = ND_rank(agtail(e)) - 1;
+ rank = GD_rank(g).plus(r).getPtr("v");
+ lnode = 0;
+ rnode = GD_rank(g).plus(r).getInt("n") - 1;
+ bounds[0] = bounds[2] = lnode - 1;
+ bounds[1] = bounds[3] = rnode + 1;
+ findlr(agtail(e), aghead(e), lpos, rpos);
+ while (lnode <= rnode) {
+ setbounds((Agnode_s)rank.plus(lnode).getPtr(), bounds, lpos, rpos);
+ if (lnode != rnode)
+ setbounds((Agnode_s)rank.plus(rnode).getPtr(), bounds, lpos, rpos);
+ lnode++;
+ rnode--;
+ if (bounds[1] - bounds[0] <= 1)
+ break;
+ }
+ if (bounds[0] <= bounds[1])
+ pos = (bounds[0] + bounds[1] + 1) / 2;
+ else
+ pos = (bounds[2] + bounds[3] + 1) / 2;
+ return pos;
+} finally {
+LEAVING("3bc4otcsxj1dujj49ydbb19oa","flat_limits");
+}
+}
+
+
+
+
+//3 4cw9yo9ap8ze1r873v6jat4yc
+// static void flat_node(edge_t * e)
+public static void flat_node(Agedge_s e) {
+ENTERING("4cw9yo9ap8ze1r873v6jat4yc","flat_node");
+try {
+ int r, place, ypos, h2;
+ Agraph_s g;
+ Agnode_s n, vn;
+ Agedge_s ve;
+ final __struct__<pointf> dimen = JUtils.from(pointf.class);
+ if (ED_label(e) == null)
+ return;
+ g = dot_root(agtail(e));
+ r = ND_rank(agtail(e));
+ place = flat_limits(g, e);
+ /* grab ypos = LL.y of label box before make_vn_slot() */
+ if ((n = (Agnode_s) GD_rank(g).plus(r - 1).getArrayOfPtr("v").plus(0).getPtr())!=null)
+ ypos = (int)(ND_coord(n).getDouble("y") - GD_rank(g).plus(r - 1).getDouble("ht1"));
+ else {
+ n = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(0).getPtr();
+ ypos = (int)(ND_coord(n).getDouble("y") + GD_rank(g).plus(r).getDouble("ht2") + GD_ranksep(g));
+ }
+ vn = make_vn_slot(g, r - 1, place);
+ dimen.___(ED_label(e).getStruct("dimen"));
+ if (GD_flip(g)!=0) {
+ double f = dimen.getDouble("x");
+ dimen.setDouble("x", dimen.getDouble("y"));
+ dimen.setDouble("y", f);
+ }
+ ND_ht(vn, dimen.getDouble("y"));
+ h2 = (int)(ND_ht(vn) / 2);
+ ND_rw(vn, dimen.getDouble("x") / 2);
+ ND_lw(vn, ND_rw(vn));
+ ND_label(vn, ED_label(e));
+ ND_coord(vn).setDouble("y", ypos + h2);
+ ve = virtual_edge(vn, agtail(e), e); /* was NULL? */
+ ED_tail_port(ve).getStruct("p").setDouble("x", -ND_lw(vn));
+ ED_head_port(ve).getStruct("p").setDouble("x", ND_rw(agtail(e)));
+ ED_edge_type(ve, 4);
+ ve = virtual_edge(vn, aghead(e), e);
+ ED_tail_port(ve).getStruct("p").setDouble("x", ND_rw(vn));
+ ED_head_port(ve).getStruct("p").setDouble("x", ND_lw(aghead(e)));
+ ED_edge_type(ve, 4);
+ /* another assumed symmetry of ht1/ht2 of a label node */
+ if (GD_rank(g).plus(r - 1).getDouble("ht1") < h2)
+ GD_rank(g).plus(r - 1).setDouble("ht1", h2);
+ if (GD_rank(g).plus(r - 1).getDouble("ht2") < h2)
+ GD_rank(g).plus(r - 1).setDouble("ht2", h2);
+ ND_alg(vn, e);
+} finally {
+LEAVING("4cw9yo9ap8ze1r873v6jat4yc","flat_node");
+}
+}
+
+
+
+
+//3 1lopavodoru6ee52snd5l6swd
+// static void abomination(graph_t * g)
+public static void abomination(Agraph_s g) {
+ENTERING("1lopavodoru6ee52snd5l6swd","abomination");
+try {
+ int r;
+ __ptr__ rptr;
+ assert(GD_minrank(g) == 0);
+ /* 3 = one for new rank, one for sentinel, one for off-by-one */
+ r = GD_maxrank(g) + 3;
+ rptr = ALLOC(r, GD_rank(g), rank_t.class);
+ GD_rank(g, rptr.plus(1));
+ for (r = GD_maxrank(g); r >= 0; r--)
+ GD_rank(g).plus(r).getPtr().setStruct(GD_rank(g).plus(r - 1).getPtr().getStruct());
+ GD_rank(g).plus(r).setInt("n", 0);
+ GD_rank(g).plus(r).setInt("an", 0);
+ GD_rank(g).plus(r).setPtr("v", zmalloc(sizeof_starstar_empty(Agnode_s.class, 2)));
+ GD_rank(g).plus(r).setPtr("av", GD_rank(g).plus(r).getPtr("v"));
+ GD_rank(g).plus(r).setPtr("flat", null);
+ GD_rank(g).plus(r).setDouble("ht1", 1);
+ GD_rank(g).plus(r).setDouble("ht2", 1);
+ GD_rank(g).plus(r).setDouble("pht1", 1);
+ GD_rank(g).plus(r).setDouble("pht2", 1);
+ GD_minrank(g, GD_minrank(g)-1);
+} finally {
+LEAVING("1lopavodoru6ee52snd5l6swd","abomination");
+}
+}
+
+
+
+
+//3 ctujx6e8k3rzv08h6gswdcaqs
+// static void checkFlatAdjacent (edge_t* e)
+public static void checkFlatAdjacent(Agedge_s e) {
+ENTERING("ctujx6e8k3rzv08h6gswdcaqs","checkFlatAdjacent");
+try {
+ Agnode_s tn = agtail(e);
+ Agnode_s hn = aghead(e);
+ int i, lo, hi;
+ Agnode_s n;
+ __ptr__ rank;
+ if (ND_order(tn) < ND_order(hn)) {
+ lo = ND_order(tn);
+ hi = ND_order(hn);
+ }
+ else {
+ lo = ND_order(hn);
+ hi = ND_order(tn);
+ }
+ rank = GD_rank(dot_root(tn)).plus(ND_rank(tn));
+ for (i = lo + 1; i < hi; i++) {
+ n = (Agnode_s) rank.getArrayOfPtr("v").plus(i).getPtr();
+ if ((ND_node_type(n) == 1 && ND_label(n)!=null) ||
+ ND_node_type(n) == 0)
+ break;
+ }
+ if (i == hi) { /* adjacent edge */
+ do {
+ ED_adjacent(e, 1);
+ e = ED_to_virt(e);
+ } while (e!=null);
+ }
+} finally {
+LEAVING("ctujx6e8k3rzv08h6gswdcaqs","checkFlatAdjacent");
+}
+}
+
+
+
+
+//3 bjwwj6ftkm0gv04cf1edqeaw6
+// int flat_edges(graph_t * g)
+public static int flat_edges(Agraph_s g) {
+ENTERING("bjwwj6ftkm0gv04cf1edqeaw6","flat_edges");
+try {
+ int i, j, reset = 0;
+ Agnode_s n;
+ Agedge_s e;
+ int found = 0;
+ for (n = GD_nlist(g); n!=null; n = ND_next(n)) {
+ if (ND_flat_out(n).listNotNull()) {
+ for (j = 0; (e = (Agedge_s) ND_flat_out(n).getFromList(j))!=null; j++) {
+ checkFlatAdjacent (e);
+ }
+ }
+ for (j = 0; j < ND_other(n).size; j++) {
+ e = (Agedge_s) ND_other(n).getFromList(j);
+ if (ND_rank(aghead(e)) == ND_rank(agtail(e)))
+ checkFlatAdjacent (e);
+ }
+ }
+ if ((GD_rank(g).plus(0).getPtr("flat")!=null) || (GD_n_cluster(g) > 0)) {
+ for (i = 0; (n = (Agnode_s) GD_rank(g).plus(0).getArrayOfPtr("v").plus(i).getPtr())!=null; i++) {
+ for (j = 0; (e = (Agedge_s) ND_flat_in(n).getFromList(j))!=null; j++) {
+ if ((ED_label(e)!=null) && N(ED_adjacent(e))) {
+ abomination(g);
+ found = 1;
+ break;
+ }
+ }
+ if (found!=0)
+ break;
+ }
+ }
+ rec_save_vlists(g);
+ for (n = GD_nlist(g); n!=null; n = ND_next(n)) {
+ /* if n is the tail of any flat edge, one will be in flat_out */
+ if (ND_flat_out(n).listNotNull()) {
+ for (i = 0; (e = (Agedge_s) ND_flat_out(n).getFromList(i))!=null; i++) {
+ if (ED_label(e)!=null) {
+ if (ED_adjacent(e)!=0) {
+ if (GD_flip(g)!=0) ED_dist(e, ED_label(e).getStruct("dimen").getDouble("y"));
+ else ED_dist(e, ED_label(e).getStruct("dimen").getDouble("x"));
+ }
+ else {
+ reset = 1;
+ flat_node(e);
+ }
+ }
+ }
+ /* look for other flat edges with labels */
+ for (j = 0; j < ND_other(n).size; j++) {
+ Agedge_s le;
+ e = (Agedge_s) ND_other(n).getFromList(j);
+ if (ND_rank(agtail(e)) != ND_rank(aghead(e))) continue;
+ if (EQ(agtail(e), aghead(e))) continue; /* skip loops */
+ le = e;
+ while (ED_to_virt(le)!=null) le = ED_to_virt(le);
+ ED_adjacent(e, ED_adjacent(le));
+ if (ED_label(e)!=null) {
+ if (ED_adjacent(e)!=0) {
+ double lw;
+ if (GD_flip(g)!=0) lw = ED_label(e).getStruct("dimen").getDouble("y");
+ else lw = ED_label(e).getStruct("dimen").getDouble("x");
+ ED_dist(le, MAX(lw,ED_dist(le)));
+ }
+ else {
+ reset = 1;
+ flat_node(e);
+ }
+ }
+ }
+ }
+ }
+ if (reset!=0)
+ rec_reset_vlists(g);
+ return reset;
+} finally {
+LEAVING("bjwwj6ftkm0gv04cf1edqeaw6","flat_edges");
+}
+}
+
+
+}
diff --git a/src/gen/lib/dotgen/mincross__c.java b/src/gen/lib/dotgen/mincross__c.java
new file mode 100644
index 0000000..09aef4b
--- /dev/null
+++ b/src/gen/lib/dotgen/mincross__c.java
@@ -0,0 +1,2786 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * Project Info: http://plantuml.com
+ *
+ * If you like this project or if you find it useful, you can support us at:
+ *
+ * http://plantuml.com/patreon (only 1$ per month!)
+ * http://plantuml.com/paypal
+ *
+ * This file is part of Smetana.
+ * Smetana is a partial translation of Graphviz/Dot sources from C to Java.
+ *
+ * (C) Copyright 2009-2017, Arnaud Roques
+ *
+ * This translation is distributed under the same Licence as the original C program:
+ *
+ *************************************************************************
+ * Copyright (c) 2011 AT&T Intellectual Property
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: See CVS logs. Details at http://www.graphviz.org/
+ *************************************************************************
+ *
+ * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
+ * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0]
+ *
+ * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES
+ * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ *
+ * You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package gen.lib.dotgen;
+import static gen.lib.cgraph.attr__c.agget;
+import static gen.lib.cgraph.edge__c.agfstout;
+import static gen.lib.cgraph.edge__c.aghead;
+import static gen.lib.cgraph.edge__c.agnxtout;
+import static gen.lib.cgraph.edge__c.agtail;
+import static gen.lib.cgraph.graph__c.agnedges;
+import static gen.lib.cgraph.node__c.agfstnode;
+import static gen.lib.cgraph.node__c.agnxtnode;
+import static gen.lib.cgraph.obj__c.agcontains;
+import static gen.lib.common.memory__c.zmalloc;
+import static gen.lib.common.utils__c.dequeue;
+import static gen.lib.common.utils__c.enqueue;
+import static gen.lib.common.utils__c.free_queue;
+import static gen.lib.common.utils__c.mapbool;
+import static gen.lib.common.utils__c.new_queue;
+import static gen.lib.dotgen.class2__c.class2;
+import static gen.lib.dotgen.cluster__c.expand_cluster;
+import static gen.lib.dotgen.cluster__c.install_cluster;
+import static gen.lib.dotgen.cluster__c.mark_lowclusters;
+import static gen.lib.dotgen.decomp__c.decompose;
+import static gen.lib.dotgen.dotinit__c.dot_root;
+import static gen.lib.dotgen.fastgr__c.delete_flat_edge;
+import static gen.lib.dotgen.fastgr__c.flat_edge;
+import static gen.lib.dotgen.fastgr__c.merge_oneway;
+import static gen.lib.dotgen.fastgr__c.new_virtual_edge;
+import static smetana.core.JUtils.EQ;
+import static smetana.core.JUtils.NEQ;
+import static smetana.core.JUtils.atof;
+import static smetana.core.JUtils.function;
+import static smetana.core.JUtils.qsort;
+import static smetana.core.JUtils.size_t_array_of_integer;
+import static smetana.core.JUtils.sizeof;
+import static smetana.core.JUtils.sizeof_starstar_empty;
+import static smetana.core.JUtilsDebug.ENTERING;
+import static smetana.core.JUtilsDebug.LEAVING;
+import static smetana.core.Macro.ALLOC;
+import static smetana.core.Macro.ALLOC_INT;
+import static smetana.core.Macro.ED_edge_type;
+import static smetana.core.Macro.ED_head_port;
+import static smetana.core.Macro.ED_label;
+import static smetana.core.Macro.ED_tail_port;
+import static smetana.core.Macro.ED_to_orig;
+import static smetana.core.Macro.ED_to_virt;
+import static smetana.core.Macro.ED_weight;
+import static smetana.core.Macro.ED_xpenalty;
+import static smetana.core.Macro.GD_clust;
+import static smetana.core.Macro.GD_comp;
+import static smetana.core.Macro.GD_flags;
+import static smetana.core.Macro.GD_flip;
+import static smetana.core.Macro.GD_has_flat_edges;
+import static smetana.core.Macro.GD_maxrank;
+import static smetana.core.Macro.GD_minrank;
+import static smetana.core.Macro.GD_n_cluster;
+import static smetana.core.Macro.GD_n_nodes;
+import static smetana.core.Macro.GD_nlist;
+import static smetana.core.Macro.GD_rank;
+import static smetana.core.Macro.GD_rankleader;
+import static smetana.core.Macro.INT_MAX;
+import static smetana.core.Macro.MIN;
+import static smetana.core.Macro.N;
+import static smetana.core.Macro.ND_clust;
+import static smetana.core.Macro.ND_coord;
+import static smetana.core.Macro.ND_flat_in;
+import static smetana.core.Macro.ND_flat_out;
+import static smetana.core.Macro.ND_has_port;
+import static smetana.core.Macro.ND_in;
+import static smetana.core.Macro.ND_low;
+import static smetana.core.Macro.ND_mark;
+import static smetana.core.Macro.ND_mval;
+import static smetana.core.Macro.ND_next;
+import static smetana.core.Macro.ND_node_type;
+import static smetana.core.Macro.ND_onstack;
+import static smetana.core.Macro.ND_order;
+import static smetana.core.Macro.ND_other;
+import static smetana.core.Macro.ND_out;
+import static smetana.core.Macro.ND_prev;
+import static smetana.core.Macro.ND_rank;
+import static smetana.core.Macro.ND_ranktype;
+import static smetana.core.Macro.ND_weight_class;
+import static smetana.core.Macro.NOT;
+import static smetana.core.Macro.UNSUPPORTED;
+import static smetana.core.Macro.agtail;
+import static smetana.core.Macro.elist_append;
+import h.Agedge_s;
+import h.Agnode_s;
+import h.Agraph_s;
+import h.adjmatrix_t;
+import h.boxf;
+import h.elist;
+import h.nodequeue;
+import h.pointf;
+import h.rank_t;
+import smetana.core.CString;
+import smetana.core.JUtils;
+import smetana.core.Memory;
+import smetana.core.Z;
+import smetana.core.__array_of_ptr__;
+import smetana.core.__ptr__;
+import smetana.core.__struct__;
+
+public class mincross__c {
+//1 2digov3edok6d5srhgtlmrycs
+// extern lt_symlist_t lt_preloaded_symbols[]
+
+
+//1 baedz5i9est5csw3epz3cv7z
+// typedef Ppoly_t Ppolyline_t
+
+
+//1 9k44uhd5foylaeoekf3llonjq
+// extern Dtmethod_t* Dtset
+
+
+//1 1ahfywsmzcpcig2oxm7pt9ihj
+// extern Dtmethod_t* Dtbag
+
+
+//1 anhghfj3k7dmkudy2n7rvt31v
+// extern Dtmethod_t* Dtoset
+
+
+//1 5l6oj1ux946zjwvir94ykejbc
+// extern Dtmethod_t* Dtobag
+
+
+//1 2wtf222ak6cui8cfjnw6w377z
+// extern Dtmethod_t* Dtlist
+
+
+//1 d1s1s6ibtcsmst88e3057u9r7
+// extern Dtmethod_t* Dtstack
+
+
+//1 axa7mflo824p6fspjn1rdk0mt
+// extern Dtmethod_t* Dtqueue
+
+
+//1 ega812utobm4xx9oa9w9ayij6
+// extern Dtmethod_t* Dtdeque
+
+
+//1 cyfr996ur43045jv1tjbelzmj
+// extern Dtmethod_t* Dtorder
+
+
+//1 wlofoiftbjgrrabzb2brkycg
+// extern Dtmethod_t* Dttree
+
+
+//1 12bds94t7voj7ulwpcvgf6agr
+// extern Dtmethod_t* Dthash
+
+
+//1 9lqknzty480cy7zsubmabkk8h
+// extern Dtmethod_t _Dttree
+
+
+//1 bvn6zkbcp8vjdhkccqo1xrkrb
+// extern Dtmethod_t _Dthash
+
+
+//1 9lidhtd6nsmmv3e7vjv9e10gw
+// extern Dtmethod_t _Dtlist
+
+
+//1 34ujfamjxo7xn89u90oh2k6f8
+// extern Dtmethod_t _Dtqueue
+
+
+//1 3jy4aceckzkdv950h89p4wjc8
+// extern Dtmethod_t _Dtstack
+
+
+//1 8dfqgf3u1v830qzcjqh9o8ha7
+// extern Agmemdisc_t AgMemDisc
+
+
+//1 18k2oh2t6llfsdc5x0wlcnby8
+// extern Agiddisc_t AgIdDisc
+
+
+//1 a4r7hi80gdxtsv4hdoqpyiivn
+// extern Agiodisc_t AgIoDisc
+
+
+//1 bnzt5syjb7mgeru19114vd6xx
+// extern Agdisc_t AgDefaultDisc
+
+
+//1 35y2gbegsdjilegaribes00mg
+// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected
+
+
+//1 c2rygslq6bcuka3awmvy2b3ow
+// typedef Agsubnode_t Agnoderef_t
+
+
+//1 xam6yv0dcsx57dtg44igpbzn
+// typedef Dtlink_t Agedgeref_t
+
+
+//1 nye6dsi1twkbddwo9iffca1j
+// extern char *Version
+
+
+//1 65mu6k7h7lb7bx14jpiw7iyxr
+// extern char **Files
+
+
+//1 2rpjdzsdyrvomf00zcs3u3dyn
+// extern const char **Lib
+
+
+//1 6d2f111lntd2rsdt4gswh5909
+// extern char *CmdName
+
+
+//1 a0ltq04fpeg83soa05a2fkwb2
+// extern char *specificFlags
+
+
+//1 1uv30qeqq2jh6uznlr4dziv0y
+// extern char *specificItems
+
+
+//1 7i4hkvngxe3x7lmg5h6b3t9g3
+// extern char *Gvfilepath
+
+
+//1 9jp96pa73kseya3w6sulxzok6
+// extern char *Gvimagepath
+
+
+//1 40ylumfu7mrvawwf4v2asvtwk
+// extern unsigned char Verbose
+
+
+//1 93st8awjy1z0h07n28qycbaka
+// extern unsigned char Reduce
+
+
+//1 f2vs67ts992erf8onwfglurzp
+// extern int MemTest
+
+
+//1 c6f8whijgjwwagjigmxlwz3gb
+// extern char *HTTPServerEnVar
+
+
+//1 cp4hzj7p87m7arw776d3bt7aj
+// extern char *Output_file_name
+
+
+//1 a3rqagofsgraie6mx0krzkgsy
+// extern int graphviz_errors
+
+
+//1 5up05203r4kxvjn1m4njcgq5x
+// extern int Nop
+
+
+//1 umig46cco431x14b3kosde2t
+// extern double PSinputscale
+
+
+//1 52bj6v8fqz39khasobljfukk9
+// extern int Syntax_errors
+
+
+//1 9ekf2ina8fsjj6y6i0an6somj
+// extern int Show_cnt
+
+
+//1 38di5qi3nkxkq65onyvconk3r
+// extern char** Show_boxes
+
+
+//1 6ri6iu712m8mpc7t2670etpcw
+// extern int CL_type
+
+
+//1 bomxiw3gy0cgd1ydqtek7fpxr
+// extern unsigned char Concentrate
+
+
+//1 cqy3gqgcq8empdrbnrhn84058
+// extern double Epsilon
+
+
+//1 64slegfoouqeg0rmbyjrm8wgr
+// extern int MaxIter
+
+
+//1 88wdinpnmfs4mab4aw62yb0bg
+// extern int Ndim
+
+
+//1 8bbad3ogcelqnnvo5br5s05gq
+// extern int State
+
+
+//1 17rnd8q45zclfn68qqst2vxxn
+// extern int EdgeLabelsDone
+
+
+//1 ymx1z4s8cznjifl2d9f9m8jr
+// extern double Initial_dist
+
+
+//1 a33bgl0c3uqb3trx419qulj1x
+// extern double Damping
+
+
+//1 d9lvrpjg1r0ojv40pod1xwk8n
+// extern int Y_invert
+
+
+//1 71efkfs77q5tq9ex6y0f4kanh
+// extern int GvExitOnUsage
+
+
+//1 4xy2dkdkv0acs2ue9eca8hh2e
+// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin
+
+
+//1 9js5gxgzr74eakgtfhnbws3t9
+// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle
+
+
+//1 anqllp9sj7wo45w6bm11j8trn
+// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth
+
+
+//1 bh0z9puipqw7gymjd5h5b8s6i
+// extern struct fdpParms_s* fdp_parms
+
+
+
+
+//3 ciez0pfggxdljedzsbklq49f0
+// static inline point pointof(int x, int y)
+public static Object pointof(Object... arg) {
+UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x;
+UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 c1s4k85p1cdfn176o3uryeros
+// static inline pointf pointfof(double x, double y)
+public static __struct__<pointf> pointfof(double x, double y) {
+// WARNING!! STRUCT
+return pointfof_w_(x, y).copy();
+}
+private static __struct__<pointf> pointfof_w_(double x, double y) {
+ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", x);
+ r.setDouble("y", y);
+ return r;
+} finally {
+LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof");
+}
+}
+
+
+
+
+//3 7cufnfitrh935ew093mw0i4b7
+// static inline box boxof(int llx, int lly, int urx, int ury)
+public static Object boxof(Object... arg) {
+UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly;
+UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury;
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 1vvsta5i8of59frav6uymguav
+// static inline boxf boxfof(double llx, double lly, double urx, double ury)
+public static __struct__<boxf> boxfof(double llx, double lly, double urx, double ury) {
+// WARNING!! STRUCT
+return boxfof_w_(llx, lly, urx, ury).copy();
+}
+private static __struct__<boxf> boxfof_w_(double llx, double lly, double urx, double ury) {
+ENTERING("1vvsta5i8of59frav6uymguav","boxfof");
+try {
+ final __struct__<boxf> b = JUtils.from(boxf.class);
+ b.getStruct("LL").setDouble("x", llx);
+ b.getStruct("LL").setDouble("y", lly);
+ b.getStruct("UR").setDouble("x", urx);
+ b.getStruct("UR").setDouble("y", ury);
+ return b;
+} finally {
+LEAVING("1vvsta5i8of59frav6uymguav","boxfof");
+}
+}
+
+
+
+
+//3 1n5xl70wxuabyf97mclvilsm6
+// static inline point add_point(point p, point q)
+public static Object add_point(Object... arg) {
+UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x;
+UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 arrsbik9b5tnfcbzsm8gr2chx
+// static inline pointf add_pointf(pointf p, pointf q)
+public static __struct__<pointf> add_pointf(final __struct__<pointf> p, final __struct__<pointf> q) {
+// WARNING!! STRUCT
+return add_pointf_w_(p.copy(), q.copy()).copy();
+}
+private static __struct__<pointf> add_pointf_w_(final __struct__<pointf> p, final __struct__<pointf> q) {
+ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", p.getDouble("x") + q.getDouble("x"));
+ r.setDouble("y", p.getDouble("y") + q.getDouble("y"));
+ return r;
+} finally {
+LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+}
+}
+
+
+
+
+//3 ai2dprak5y6obdsflguh5qbd7
+// static inline point sub_point(point p, point q)
+public static Object sub_point(Object... arg) {
+UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 16f6pyogcv3j7n2p0n8giqqgh
+// static inline pointf sub_pointf(pointf p, pointf q)
+public static Object sub_pointf(Object... arg) {
+UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9k50jgrhc4f9824vf8ony74rw
+// static inline point mid_point(point p, point q)
+public static Object mid_point(Object... arg) {
+UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2;
+UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 59c4f7im0ftyowhnzzq2v9o1x
+// static inline pointf mid_pointf(pointf p, pointf q)
+public static Object mid_pointf(Object... arg) {
+UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.;
+UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 5r18p38gisvcx3zsvbb9saixx
+// static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+public static Object interpolate_pointf(Object... arg) {
+UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r;
+UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x);
+UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y);
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bxzrv2ghq04qk5cbyy68s4mol
+// static inline point exch_xy(point p)
+public static Object exch_xy(Object... arg) {
+UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9lt3e03tac6h6sydljrcws8fd
+// static inline pointf exch_xyf(pointf p)
+public static Object exch_xyf(Object... arg) {
+UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8l9qhieokthntzdorlu5zn29b
+// static inline box box_bb(box b0, box b1)
+public static Object box_bb(Object... arg) {
+UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 clws9h3bbjm0lw3hexf8nl4c4
+// static inline boxf boxf_bb(boxf b0, boxf b1)
+public static Object boxf_bb(Object... arg) {
+UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bit6ycxo1iqd2al92y8gkzlvb
+// static inline box box_intersect(box b0, box b1)
+public static Object box_intersect(Object... arg) {
+UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8gfybie7k6pgb3o1a6llgpwng
+// static inline boxf boxf_intersect(boxf b0, boxf b1)
+public static Object boxf_intersect(Object... arg) {
+UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 7z8j2quq65govaaejrz7b4cvb
+// static inline int box_overlap(box b0, box b1)
+public static Object box_overlap(Object... arg) {
+UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4z0suuut2acsay5m8mg9dqjdu
+// static inline int boxf_overlap(boxf b0, boxf b1)
+public static Object boxf_overlap(Object... arg) {
+UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 dd34swz5rmdgu3a2np2a4h1dy
+// static inline int box_contains(box b0, box b1)
+public static Object box_contains(Object... arg) {
+UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8laj1bspbu2i1cjd9upr7xt32
+// static inline int boxf_contains(boxf b0, boxf b1)
+public static Object boxf_contains(Object... arg) {
+UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4wf5swkz24xx51ja2dynbycu1
+// static inline pointf perp (pointf p)
+public static Object perp(Object... arg) {
+UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6dtlpzv4mvgzb9o0b252yweuv
+// static inline pointf scale (double c, pointf p)
+public static Object scale(Object... arg) {
+UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x;
+UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 7ye0tsa8kll1jntdcqzsgjp0q
+// static int gd_minrank(Agraph_t *g)
+public static Object gd_minrank(Object... arg) {
+UNSUPPORTED("7wnr5wvv8mw2d3mfdyvdz5kz9"); // static int gd_minrank(Agraph_t *g) {return GD_minrank(g);}
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 c7dhattawtph3qv1eeoafltk0
+// static int gd_maxrank(Agraph_t *g)
+public static Object gd_maxrank(Object... arg) {
+UNSUPPORTED("b89n5iyqsgra9z559023bf23e"); // static int gd_maxrank(Agraph_t *g) {return GD_maxrank(g);}
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8g2can1ih1668s30s6d7wny5b
+// static rank_t *gd_rank(Agraph_t *g, int r)
+public static Object gd_rank(Object... arg) {
+UNSUPPORTED("bxd4rm18v4y2x6fo30vh9pauo"); // static rank_t *gd_rank(Agraph_t *g, int r) {return &GD_rank(g)[r];}
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8pjrnrvidhpqcubvkk5lsfp6
+// static int nd_order(Agnode_t *v)
+public static Object nd_order(Object... arg) {
+UNSUPPORTED("f4zvlmxyp6gei8iiu33hpz4oe"); // static int nd_order(Agnode_t *v) { return ND_order(v); }
+
+throw new UnsupportedOperationException();
+}
+
+
+//1 eusjqny3hma23wvcznk9arpgr
+// static int MinQuit
+//private static int MinQuit;
+
+//1 eykidmlm64erbhaultu3js822
+// static double Convergence
+//private static double Convergence;
+
+//1 f2ssditidb9f1cgp7r1kslp0e
+// static graph_t *Root
+//private static Agraph_s Root;
+
+//1 ager0orj38x5rjuhzv1o2cxuc
+// static int GlobalMinRank, GlobalMaxRank
+//private static int GlobalMinRank, GlobalMaxRank;
+
+//1 dag2n5hcww3ada79u52a8yha6
+// static edge_t **TE_list
+//private static __ptr__ TE_list;
+
+//1 agrg82s0nsmuokh0t3h5q6h90
+// static int *TI_list
+// private static __ptr__ TI_list;
+
+//1 7x0e0qfe96o5elb6lxt8mfmho
+// static boolean ReMincross
+//private static boolean ReMincross;
+
+
+
+//3 e876vp4hgkzshluz6qk77cjwk
+// void dot_mincross(graph_t * g, int doBalance)
+public static void dot_mincross(Agraph_s g, boolean doBalance) {
+ENTERING("e876vp4hgkzshluz6qk77cjwk","dot_mincross");
+try {
+ int c, nc;
+ CString s;
+ init_mincross(g);
+ for (nc = c = 0; c < GD_comp(g).size; c++) {
+ init_mccomp(g, c);
+ nc += mincross_(g, 0, 2, doBalance);
+ }
+ merge2(g);
+ /* run mincross on contents of each cluster */
+ for (c = 1; c <= GD_n_cluster(g); c++) {
+ nc += mincross_clust(g, (Agraph_s) GD_clust(g).plus(c).getPtr(), doBalance);
+ }
+ if ((GD_n_cluster(g) > 0)
+ && (N(s = agget(g, new CString("remincross"))) || (mapbool(s)))) {
+ mark_lowclusters(g);
+ Z.z().ReMincross = NOT(0);
+ nc = mincross_(g, 2, 2, doBalance);
+ }
+ cleanup2(g, nc);
+} finally {
+LEAVING("e876vp4hgkzshluz6qk77cjwk","dot_mincross");
+}
+}
+
+
+
+
+//3 756bre1tpxb1tq68p7xhkrxkc
+// static adjmatrix_t *new_matrix(int i, int j)
+public static adjmatrix_t new_matrix(int i, int j) {
+ENTERING("756bre1tpxb1tq68p7xhkrxkc","new_matrix");
+try {
+ adjmatrix_t rv = (adjmatrix_t) Memory.malloc(adjmatrix_t.class);
+ rv.setInt("nrows", i);
+ rv.setInt("ncols", j);
+ rv.setPtr("data", zmalloc(size_t_array_of_integer(i*j)));
+ return rv;
+} finally {
+LEAVING("756bre1tpxb1tq68p7xhkrxkc","new_matrix");
+}
+}
+
+
+
+
+//3 1n1e0k0wtlbugwm3cb4na6av6
+// static void free_matrix(adjmatrix_t * p)
+public static void free_matrix(adjmatrix_t p) {
+ENTERING("1n1e0k0wtlbugwm3cb4na6av6","free_matrix");
+try {
+ if (p!=null) {
+ Memory.free(p.getPtr("data"));
+ Memory.free(p);
+ }
+} finally {
+LEAVING("1n1e0k0wtlbugwm3cb4na6av6","free_matrix");
+}
+}
+
+
+
+
+//3 49vw7fkn99wbojtfksugvuruh
+// static void init_mccomp(graph_t * g, int c)
+public static void init_mccomp(Agraph_s g, int c) {
+ENTERING("49vw7fkn99wbojtfksugvuruh","init_mccomp");
+try {
+ int r;
+ // GD_nlist(g, GD_comp(g).getFromListt(c).getPtr());
+ GD_nlist(g, GD_comp(g).getFromList(c));
+ if (c > 0) {
+ for (r = GD_minrank(g); r <= GD_maxrank(g); r++) {
+ GD_rank(g).plus(r).setPtr("v", GD_rank(g).plus(r).getPtr("v").plus(GD_rank(g).plus(r).getInt("n")));
+ GD_rank(g).plus(r).setInt("n", 0);
+ }
+ }
+} finally {
+LEAVING("49vw7fkn99wbojtfksugvuruh","init_mccomp");
+}
+}
+
+
+
+
+//3 72v5zs502m1of3vsofyfo15ap
+// static int betweenclust(edge_t * e)
+public static Object betweenclust(Object... arg) {
+UNSUPPORTED("6k6r73j7gctt4ntepjubrlfze"); // static int betweenclust(edge_t * e)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("1z9f8ptfggp4qlwv5cdd55i3j"); // while (ED_to_orig(e))
+UNSUPPORTED("bdmai1d040qmubf08ds339v9x"); // e = ED_to_orig(e);
+UNSUPPORTED("eq2o4v9qo3xx42in97ssadek"); // return (ND_clust(agtail(e)) != ND_clust(aghead(e)));
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 760bwoz4twwy2jr1b32r6zefi
+// static void do_ordering_node (graph_t * g, node_t* n, int outflag)
+public static Object do_ordering_node(Object... arg) {
+UNSUPPORTED("ajn55zvrzf8njqkshll3kaz88"); // static void do_ordering_node (graph_t * g, node_t* n, int outflag)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("bp5tdulayknsvyv8a2j2tinh"); // int i, ne;
+UNSUPPORTED("5yrhx4blosxo5xnc1nh1kzhfs"); // node_t *u, *v;
+UNSUPPORTED("9cbk3ly04nbzqoxmmjwptqq9a"); // edge_t *e, *f, *fe;
+UNSUPPORTED("5ol5beitdgh7axwpk35pc9trm"); // edge_t **sortlist = TE_list;
+UNSUPPORTED("aeria2or5qpnnrr9wm15k588l"); // if (ND_clust(n))
+UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return;
+UNSUPPORTED("442hvc4h32o6e3cvzm5y5y3oq"); // if (outflag) {
+UNSUPPORTED("7xi4jdz18dyv740agfh5uwtxv"); // for (i = ne = 0; (e = ND_out(n).list[i]); i++)
+UNSUPPORTED("24smn55xhvkklh2do2cfcmy98"); // if (!betweenclust(e))
+UNSUPPORTED("ouas2w3lk54dwigzgglm3w7r"); // sortlist[ne++] = e;
+UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else {
+UNSUPPORTED("6dgl0skwzmsi69ugcewc5vwaf"); // for (i = ne = 0; (e = ND_in(n).list[i]); i++)
+UNSUPPORTED("24smn55xhvkklh2do2cfcmy98"); // if (!betweenclust(e))
+UNSUPPORTED("ouas2w3lk54dwigzgglm3w7r"); // sortlist[ne++] = e;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("hdnqvw2crdbzt2uenqso4l7k"); // if (ne <= 1)
+UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return;
+UNSUPPORTED("4zkjvsomlyhcl06ummf4gz0d2"); // /* write null terminator at end of list.
+UNSUPPORTED("2zx16rdu8hp86z3z36natgy8t"); // requires +1 in TE_list alloccation */
+UNSUPPORTED("6dp57feioscwstrfmhqhrz1jx"); // sortlist[ne] = 0;
+UNSUPPORTED("4wqnlh6z9lr2xvmjp95nozn84"); // qsort(sortlist, ne, sizeof(sortlist[0]), (qsort_cmpf) edgeidcmpf);
+UNSUPPORTED("d6aia9q03brt8otnyu5m3tlxj"); // for (ne = 1; (f = sortlist[ne]); ne++) {
+UNSUPPORTED("1b9ylnvr8zscovbyrxoe9ypax"); // e = sortlist[ne - 1];
+UNSUPPORTED("4nbrepm0pmohxxml0csb9j5xc"); // if (outflag) {
+UNSUPPORTED("2rcn453iomwvou108kjr2rboc"); // u = aghead(e);
+UNSUPPORTED("96i3kysq5lfoyukhe65vpiah2"); // v = aghead(f);
+UNSUPPORTED("7yhr8hn3r6wohafwxrt85b2j2"); // } else {
+UNSUPPORTED("96jttvtco2oqt3y3qr5fbhu1j"); // u = agtail(e);
+UNSUPPORTED("8g5mzwux62x43bjzeslylyi0g"); // v = agtail(f);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("a7mygw39shaa9w4l8fdlgqr0i"); // if (find_flat_edge(u, v))
+UNSUPPORTED("6cprbghvenu9ldc0ez1ifc63q"); // return;
+UNSUPPORTED("aoa2embk8eaij29q6nbl4e5tk"); // fe = new_virtual_edge(u, v, NULL);
+UNSUPPORTED("67t5g8eu9tdqbnwj4s4g6ah6u"); // ED_edge_type(fe) = 4;
+UNSUPPORTED("b32n066t1nkgj646wvo7vuwlq"); // flat_edge(g, fe);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 815nmj2gcomtex4yfclqde12j
+// static void do_ordering(graph_t * g, int outflag)
+public static Object do_ordering(Object... arg) {
+UNSUPPORTED("9v68euuxlii02rb5mhlyd8alp"); // static void do_ordering(graph_t * g, int outflag)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("5y5mm5obhrqt745c4fx4o0r56"); // /* Order all nodes in graph */
+UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n;
+UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
+UNSUPPORTED("bicm0b87pp2rusaezmk6qigjq"); // do_ordering_node (g, n, outflag);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 svq3i3c6yw3cbfwaeip5dfuy
+// static void do_ordering_for_nodes(graph_t * g)
+public static Object do_ordering_for_nodes(Object... arg) {
+UNSUPPORTED("7yd9vingwgdcdtrx0p38jti00"); // static void do_ordering_for_nodes(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("887aairlqk73reuayo3hz67v3"); // /* Order nodes which have the "ordered" attribute */
+UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n;
+UNSUPPORTED("cbbfhy5qk3dailijtedj1czut"); // const char *ordering;
+UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
+UNSUPPORTED("ekvbu44bbrdwkw71yd21dbns9"); // if ((ordering = late_string(n, N_ordering, NULL))) {
+UNSUPPORTED("7jueg5punlemj6mfbpgltb5u8"); // if ((*(ordering)==*("out")&&!strcmp(ordering,"out")))
+UNSUPPORTED("302oz5j9wva90otn6jq513bme"); // do_ordering_node(g, n, NOT(0));
+UNSUPPORTED("1dt1hft3eak5ytycs6dh7yk0"); // else if ((*(ordering)==*("in")&&!strcmp(ordering,"in")))
+UNSUPPORTED("dnig45so0x904azp9fhxymqjn"); // do_ordering_node(g, n, 0);
+UNSUPPORTED("2rxgmu8cktngvqtsex2rlbjed"); // else if (ordering[0])
+UNSUPPORTED("axk3fxl1bh09n475kmcx42kdu"); // agerr(AGERR, "ordering '%s' not recognized for node '%s'.\n", ordering, agnameof(n));
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 hzoz2czb672i0nbjvjhbc3na
+// static void ordered_edges(graph_t * g)
+public static void ordered_edges(Agraph_s g) {
+ENTERING("hzoz2czb672i0nbjvjhbc3na","ordered_edges");
+try {
+ CString ordering;
+ if (N(Z.z().G_ordering) && N(Z.z().N_ordering))
+ return;
+UNSUPPORTED("98iqppixxkdndoz210i5ejppy"); // if ((ordering = late_string(g, G_ordering, NULL))) {
+UNSUPPORTED("lhhw62wj3on36enoy6ug6u1p"); // if ((*(ordering)==*("out")&&!strcmp(ordering,"out")))
+UNSUPPORTED("ctbadiyd3jjtlt2f5t9p94au7"); // do_ordering(g, NOT(0));
+UNSUPPORTED("259y9uhqwc8w6jhrpm1eaa7hf"); // else if ((*(ordering)==*("in")&&!strcmp(ordering,"in")))
+UNSUPPORTED("312ij4z5d42rye9s30l9io097"); // do_ordering(g, 0);
+UNSUPPORTED("25yw5chxmy54pmo88tre1w2ir"); // else if (ordering[0])
+UNSUPPORTED("5ugg9zy8378pijqru97mxmen5"); // agerr(AGERR, "ordering '%s' not recognized.\n", ordering);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("div10atae09n36x269sl208r1"); // else
+UNSUPPORTED("6ld19omy1z68vprfzbhrjqr2z"); // {
+UNSUPPORTED("50itbchatjp61haxvg3xnhvoo"); // graph_t *subg;
+UNSUPPORTED("evzjoqkm2xukapjvpccu2f23e"); // for (subg = agfstsubg(g); subg; subg = agnxtsubg(subg)) {
+UNSUPPORTED("1016hqxaexp4j33vmkzvdpq80"); // /* clusters are processed by separate calls to ordered_edges */
+UNSUPPORTED("7ah0zlu96u6g6cquxebenj4z3"); // if (!is_cluster(subg))
+UNSUPPORTED("7sqzaehh40dvpm11hlxhef6cw"); // ordered_edges(subg);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("h2b3ao18r091ie7yk9v20pqq"); // if (N_ordering) do_ordering_for_nodes (g);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+} finally {
+LEAVING("hzoz2czb672i0nbjvjhbc3na","ordered_edges");
+}
+}
+
+
+
+
+//3 crwc5qe7fmrpgcqh1a80toyvo
+// static int mincross_clust(graph_t * par, graph_t * g, int doBalance)
+public static int mincross_clust(Agraph_s par, Agraph_s g, boolean doBalance) {
+ENTERING("crwc5qe7fmrpgcqh1a80toyvo","mincross_clust");
+try {
+ int c, nc;
+ expand_cluster(g);
+ ordered_edges(g);
+ flat_breakcycles(g);
+ flat_reorder(g);
+ nc = mincross_(g, 2, 2, doBalance);
+ for (c = 1; c <= GD_n_cluster(g); c++)
+ nc += mincross_clust(g, (Agraph_s) GD_clust(g).plus(c).getPtr(), doBalance);
+ save_vlist(g);
+ return nc;
+} finally {
+LEAVING("crwc5qe7fmrpgcqh1a80toyvo","mincross_clust");
+}
+}
+
+
+
+
+//3 657v773m21j5w3g3v94o7464t
+// static int left2right(graph_t * g, node_t * v, node_t * w)
+public static boolean left2right(Agraph_s g, Agnode_s v, Agnode_s w) {
+ENTERING("657v773m21j5w3g3v94o7464t","left2right");
+try {
+ adjmatrix_t M;
+ boolean rv=false;
+ /* CLUSTER indicates orig nodes of clusters, and vnodes of skeletons */
+ if (Z.z().ReMincross == false) {
+ if (NEQ(ND_clust(v), ND_clust(w)) && (ND_clust(v)!=null) && (ND_clust(w)!=null)) {
+ /* the following allows cluster skeletons to be swapped */
+ if ((ND_ranktype(v) == 7)
+ && (ND_node_type(v) == 1))
+ return false;
+ if ((ND_ranktype(w) == 7)
+ && (ND_node_type(w) == 1))
+ return false;
+ return NOT(false);
+ /*return ((ND_ranktype(v) != CLUSTER) && (ND_ranktype(w) != CLUSTER)); */
+ }
+ } else {
+UNSUPPORTED("8lltx4lxwrqossx8qw1khzwf9"); // if ((ND_clust(v)) != (ND_clust(w)))
+UNSUPPORTED("9qhn9m3123s8n6wwxjfo8awlm"); // return NOT(0);
+ }
+ M = (adjmatrix_t) GD_rank(g).plus(ND_rank(v)).getPtr().getPtr("flat");
+ if (M == null)
+ rv = false;
+ else {
+ if (GD_flip(g)!=0) {
+ Agnode_s t = v;
+ v = w;
+ w = t;
+ }
+ rv = (M.getArrayOfInteger("data").plus(((ND_low(v))*M.getInt("ncols"))+(ND_low(w))).getInt())!=0;
+ }
+ return rv;
+} finally {
+LEAVING("657v773m21j5w3g3v94o7464t","left2right");
+}
+}
+
+
+
+
+//3 daknncpjy7g5peiicolbmh55i
+// static int in_cross(node_t * v, node_t * w)
+public static int in_cross(Agnode_s v, Agnode_s w) {
+ENTERING("daknncpjy7g5peiicolbmh55i","in_cross");
+try {
+ __array_of_ptr__ e1;
+ __array_of_ptr__ e2;
+ int inv, cross = 0, t;
+ for (e2 = ND_in(w).getTheArray(); e2.getPtr()!=null; e2=e2.plus(1)) {
+ int cnt = ED_xpenalty(e2.getPtr());
+ inv = ND_order((agtail(e2.getPtr())));
+ for (e1 = ND_in(v).getTheArray(); e1.getPtr()!=null; e1=e1.plus(1)) {
+ t = ND_order(agtail(e1.getPtr())) - inv;
+ if ((t > 0)
+ || ((t == 0)
+ && ( ED_tail_port(e1.getPtr()).getStruct("p").getDouble("x") > ED_tail_port(e2.getPtr()).getStruct("p").getDouble("x"))))
+ cross += ED_xpenalty(e1.getPtr()) * cnt;
+ }
+ }
+ return cross;
+} finally {
+LEAVING("daknncpjy7g5peiicolbmh55i","in_cross");
+}
+}
+
+
+
+
+//3 b7mf74np8ewrgzwd5u0o8fqod
+// static int out_cross(node_t * v, node_t * w)
+public static int out_cross(Agnode_s v, Agnode_s w) {
+ENTERING("b7mf74np8ewrgzwd5u0o8fqod","out_cross");
+try {
+ __array_of_ptr__ e1, e2;
+ int inv, cross = 0, t;
+ for (e2 = ND_out(w).getTheArray(); e2.getPtr()!=null; e2=e2.plus(1)) {
+ int cnt = ED_xpenalty((Agedge_s)e2.getPtr());
+ inv = ND_order(aghead(e2.getPtr()));
+ for (e1 = ND_out(v).getTheArray(); e1.getPtr()!=null; e1=e1.plus(1)) {
+ t = ND_order(aghead(e1.getPtr())) - inv;
+ if ((t > 0)
+ || ((t == 0)
+ && ((ED_head_port(e1.getPtr())).getStruct("p").getDouble("x") > (ED_head_port(e2.getPtr())).getStruct("p").getDouble("x"))))
+ cross += ((ED_xpenalty(e1.getPtr())) * cnt);
+ }
+ }
+ return cross;
+} finally {
+LEAVING("b7mf74np8ewrgzwd5u0o8fqod","out_cross");
+}
+}
+
+
+
+
+//3 ba4tbr57wips1dzpgxzx3b6ja
+// static void exchange(node_t * v, node_t * w)
+public static void exchange(Agnode_s v, Agnode_s w) {
+ENTERING("ba4tbr57wips1dzpgxzx3b6ja","exchange");
+try {
+ int vi, wi, r;
+ r = ND_rank(v);
+ vi = ND_order(v);
+ wi = ND_order(w);
+ ND_order(v, wi);
+ GD_rank(Z.z().Root).plus(r).getArrayOfPtr("v").plus(wi).setPtr(v);
+ ND_order(w, vi);
+ GD_rank(Z.z().Root).plus(r).getArrayOfPtr("v").plus(vi).setPtr(w);
+} finally {
+LEAVING("ba4tbr57wips1dzpgxzx3b6ja","exchange");
+}
+}
+
+
+
+
+//3 dzkv88lq5zv0g3yo7bf90qgr7
+// static void balanceNodes(graph_t * g, int r, node_t * v, node_t * w)
+public static Object balanceNodes(Object... arg) {
+UNSUPPORTED("504qsj6detmzllj50pno6sdx4"); // static void balanceNodes(graph_t * g, int r, node_t * v, node_t * w)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("dor7xumwnqvymg7xdesa6pxqn"); // node_t *s; /* separator node */
+UNSUPPORTED("c6s55weiu8hc4voeunxf2utru"); // int sepIndex;
+UNSUPPORTED("6gqdkaiir2naiawry8cnlpf4a"); // int nullType; /* type of null nodes */
+UNSUPPORTED("2dqxr1ujg381s9ugf0367iici"); // int cntDummy = 0, cntOri = 0;
+UNSUPPORTED("7yj94w2zpwdubyzymyljw490a"); // int k = 0, m = 0, k1 = 0, m1 = 0, i = 0;
+UNSUPPORTED("6mq7c2z232o8kvpp371lfmewh"); // /* we only consider v and w of different types */
+UNSUPPORTED("53kjkk6c0h35zpbikj9y2q6b4"); // if (ND_node_type(v) == ND_node_type(w))
+UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return;
+UNSUPPORTED("5ylcsv8rwps97qz7sdftpwrka"); // /* count the number of dummy and original nodes */
+UNSUPPORTED("5025o4uc5dkbxf3smi3kmfoit"); // for (i = 0; i < GD_rank(g)[r].n; i++) {
+UNSUPPORTED("d87qjwxc2qjvh6hb9fmi9y9vq"); // if (ND_node_type(GD_rank(g)[r].v[i]) == 0)
+UNSUPPORTED("dcny4syjny1sh20jyjjl7jj62"); // cntOri++;
+UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else
+UNSUPPORTED("bbpsgrsgquajs3xxqzeqvgv6n"); // cntDummy++;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("2qx27p3loyln3i09ycwf5p1dh"); // if (cntOri < cntDummy) {
+UNSUPPORTED("ex9drrxqg8zalagzrnvrulrlb"); // if (ND_node_type(v) == 0)
+UNSUPPORTED("jtm789r1sqidxc39d09n9det"); // s = v;
+UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else
+UNSUPPORTED("c31t0vnbzvj9zml7p91syjzep"); // s = w;
+UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else {
+UNSUPPORTED("ex9drrxqg8zalagzrnvrulrlb"); // if (ND_node_type(v) == 0)
+UNSUPPORTED("c31t0vnbzvj9zml7p91syjzep"); // s = w;
+UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else
+UNSUPPORTED("jtm789r1sqidxc39d09n9det"); // s = v;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("ejbeaepbxwawm7mvtusyi2x57"); // /* get the separator node index */
+UNSUPPORTED("5025o4uc5dkbxf3smi3kmfoit"); // for (i = 0; i < GD_rank(g)[r].n; i++) {
+UNSUPPORTED("afetrkwabtn6v07evr5japsk5"); // if (GD_rank(g)[r].v[i] == s)
+UNSUPPORTED("bvwqg08b9hn6rfdx11sjq0hgc"); // sepIndex = i;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("ecis6irl9vire6ejfrshttjk4"); // nullType = (ND_node_type(s) == 0) ? 1 : 0;
+UNSUPPORTED("1i78b3w9omzkba0pmafwfunbj"); // /* count the number of null nodes to the left and
+UNSUPPORTED("1f2jn45p7wv1ud964k43lgdss"); // * right of the separator node
+UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */
+UNSUPPORTED("5l8w7t0ta6p6hnfp72l7lbqey"); // for (i = sepIndex - 1; i >= 0; i--) {
+UNSUPPORTED("49j09cv8f8ien7kqoguzywjmw"); // if (ND_node_type(GD_rank(g)[r].v[i]) == nullType)
+UNSUPPORTED("borg3y7rgdooetc6ckrsrg9fc"); // k++;
+UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else
+UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("cuj70hyout6yv30drqkjiwllo"); // for (i = sepIndex + 1; i < GD_rank(g)[r].n; i++) {
+UNSUPPORTED("49j09cv8f8ien7kqoguzywjmw"); // if (ND_node_type(GD_rank(g)[r].v[i]) == nullType)
+UNSUPPORTED("d35zlcj7podjjns9eg2ttocr7"); // m++;
+UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else
+UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("9r0b42aqwdlx2cg7aqsxgle1o"); // /* now exchange v,w and calculate the same counts */
+UNSUPPORTED("cvktng9nwm6futhlv28bqbqy"); // exchange(v, w);
+UNSUPPORTED("ejbeaepbxwawm7mvtusyi2x57"); // /* get the separator node index */
+UNSUPPORTED("5025o4uc5dkbxf3smi3kmfoit"); // for (i = 0; i < GD_rank(g)[r].n; i++) {
+UNSUPPORTED("afetrkwabtn6v07evr5japsk5"); // if (GD_rank(g)[r].v[i] == s)
+UNSUPPORTED("bvwqg08b9hn6rfdx11sjq0hgc"); // sepIndex = i;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("1i78b3w9omzkba0pmafwfunbj"); // /* count the number of null nodes to the left and
+UNSUPPORTED("1f2jn45p7wv1ud964k43lgdss"); // * right of the separator node
+UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */
+UNSUPPORTED("5l8w7t0ta6p6hnfp72l7lbqey"); // for (i = sepIndex - 1; i >= 0; i--) {
+UNSUPPORTED("49j09cv8f8ien7kqoguzywjmw"); // if (ND_node_type(GD_rank(g)[r].v[i]) == nullType)
+UNSUPPORTED("eer25fyjj3njh33v709xj07lk"); // k1++;
+UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else
+UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("cuj70hyout6yv30drqkjiwllo"); // for (i = sepIndex + 1; i < GD_rank(g)[r].n; i++) {
+UNSUPPORTED("49j09cv8f8ien7kqoguzywjmw"); // if (ND_node_type(GD_rank(g)[r].v[i]) == nullType)
+UNSUPPORTED("80ptwhmp1gyks2xfkcjub24o9"); // m1++;
+UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else
+UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("6yjcl5tugkib89c3p3beoi0cs"); // if (abs(k1 - m1) > abs(k - m)) {
+UNSUPPORTED("4hhzcihijbcjb2mo6eop9g855"); // exchange(v, w); //revert to the original ordering
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 72rj5xs4qh00oh2yi1h5qaadu
+// static int balance(graph_t * g)
+public static Object balance(Object... arg) {
+UNSUPPORTED("4223t6rekw3qd8eksvz9kjcqh"); // static int balance(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("970giwpms1ljmt0px5djlqs0z"); // int i, c0, c1, rv;
+UNSUPPORTED("8xqnhjfdqnlwlyld1ep6hpnmb"); // node_t *v, *w;
+UNSUPPORTED("p6jnh7nvcpnl3zbz636pskbs"); // int r;
+UNSUPPORTED("yy0fwjrmxw3jbi85mvwrka7f"); // rv = 0;
+UNSUPPORTED("9ey19t6tw2srzaedeng4sq96z"); // for (r = GD_maxrank(g); r >= GD_minrank(g); r--) {
+UNSUPPORTED("2nlemgjbnd1ygry42bcbuwo9y"); // GD_rank(g)[r].candidate = 0;
+UNSUPPORTED("91gzxbmcoy5xbvf8nlhmlj4eh"); // for (i = 0; i < GD_rank(g)[r].n - 1; i++) {
+UNSUPPORTED("5ekdr3i8niy7x2ohi7ftgmjke"); // v = GD_rank(g)[r].v[i];
+UNSUPPORTED("efwyjm6j3e7byt6z83lrhgd1r"); // w = GD_rank(g)[r].v[i + 1];
+UNSUPPORTED("8ey6umhtefcrb61ncgis82hw6"); // assert(ND_order(v) < ND_order(w));
+UNSUPPORTED("ddkyq74d5rjfcofczt4hmkxsj"); // if (left2right(g, v, w))
+UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue;
+UNSUPPORTED("cdpfb5fmlhe0831jf96pjp9s0"); // c0 = c1 = 0;
+UNSUPPORTED("3l676z6ajeugxvie4r957jap3"); // if (r > 0) {
+UNSUPPORTED("ennnd5cl9xhh55j2bni58iuxv"); // c0 += in_cross(v, w);
+UNSUPPORTED("bk4dl2r7nw7j8xvkpg7g7x0z9"); // c1 += in_cross(w, v);
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("f0ordylgf44hx2l90eof067yo"); // if (GD_rank(g)[r + 1].n > 0) {
+UNSUPPORTED("d945airzpo5xbu0fz68ylmgql"); // c0 += out_cross(v, w);
+UNSUPPORTED("e6ez0uwca50uwo7i7i4vak4f2"); // c1 += out_cross(w, v);
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("884yfwkgyw57w5ivpfrggmq15"); // if (c1 <= c0) {
+UNSUPPORTED("c2sevxb1gtyc2olq8akmvs40u"); // balanceNodes(g, r, v, w);
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bxwzx4m9ejausu58u7abr6fm0
+// static int transpose_step(graph_t * g, int r, int reverse)
+public static int transpose_step(Agraph_s g, int r, boolean reverse) {
+ENTERING("bxwzx4m9ejausu58u7abr6fm0","transpose_step");
+try {
+ int i, c0, c1, rv;
+ Agnode_s v, w;
+ rv = 0;
+ GD_rank(g).plus(r).getPtr().setBoolean("candidate", false);
+ for (i = 0; i < GD_rank(g).plus(r).getInt("n") - 1; i++) {
+ v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).getPtr();
+ w = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(i + 1).getPtr();
+ //assert(ND_order(v) < ND_order(w));
+ if (left2right(g, v, w))
+ continue;
+ c0 = c1 = 0;
+ if (r > 0) {
+ c0 += in_cross(v, w);
+ c1 += in_cross(w, v);
+ }
+ if (GD_rank(g).plus(r + 1).getInt("n") > 0) {
+ c0 += out_cross(v, w);
+ c1 += out_cross(w, v);
+ }
+ if ((c1 < c0) || ((c0 > 0) && reverse && (c1 == c0))) {
+ exchange(v, w);
+ rv += (c0 - c1);
+ GD_rank(Z.z().Root).plus(r).getPtr().setBoolean("valid", false);
+ GD_rank(g).plus(r).getPtr().setBoolean("candidate", NOT(false));
+ if (r > GD_minrank(g)) {
+ GD_rank(Z.z().Root).plus(r - 1).getPtr().setBoolean("valid", false);
+ GD_rank(g).plus(r - 1).getPtr().setBoolean("candidate", NOT(false));
+ }
+ if (r < GD_maxrank(g)) {
+ GD_rank(Z.z().Root).plus(r + 1).getPtr().setBoolean("valid", false);
+ GD_rank(g).plus(r + 1).getPtr().setBoolean("candidate", NOT(false));
+ }
+ }
+ }
+ return rv;
+} finally {
+LEAVING("bxwzx4m9ejausu58u7abr6fm0","transpose_step");
+}
+}
+
+
+
+
+//3 2i22bxgg5y7v5c5d40k5zppky
+// static void transpose(graph_t * g, int reverse)
+public static void transpose(Agraph_s g, boolean reverse) {
+ENTERING("2i22bxgg5y7v5c5d40k5zppky","transpose");
+try {
+ int r, delta;
+ for (r = GD_minrank(g); r <= GD_maxrank(g); r++)
+ GD_rank(g).plus(r).getPtr().setBoolean("candidate", NOT(false));
+ do {
+ delta = 0;
+ for (r = GD_minrank(g); r <= GD_maxrank(g); r++) {
+ if (GD_rank(g).plus(r).getPtr().getBoolean("candidate")) {
+ delta += transpose_step(g, r, reverse);
+ }
+ }
+ /*} while (delta > ncross(g)*(1.0 - Convergence)); */
+ } while (delta >= 1);
+} finally {
+LEAVING("2i22bxgg5y7v5c5d40k5zppky","transpose");
+}
+}
+
+
+
+
+//3 7lrk2rxqnwwdau8cx85oqkpmv
+// static int mincross(graph_t * g, int startpass, int endpass, int doBalance)
+public static int mincross_(Agraph_s g, int startpass, int endpass, boolean doBalance) {
+ENTERING("7lrk2rxqnwwdau8cx85oqkpmv","mincross");
+try {
+ int maxthispass=0, iter, trying, pass;
+ int cur_cross, best_cross;
+ if (startpass > 1) {
+ cur_cross = best_cross = ncross(g);
+ save_best(g);
+ } else
+ cur_cross = best_cross = INT_MAX;
+ for (pass = startpass; pass <= endpass; pass++) {
+ if (pass <= 1) {
+ maxthispass = MIN(4, Z.z().MaxIter);
+ if (EQ(g, dot_root(g)))
+ build_ranks(g, pass);
+ if (pass == 0)
+ flat_breakcycles(g);
+ flat_reorder(g);
+ if ((cur_cross = ncross(g)) <= best_cross) {
+ save_best(g);
+ best_cross = cur_cross;
+ }
+ trying = 0;
+ } else {
+ maxthispass = Z.z().MaxIter;
+ if (cur_cross > best_cross)
+ restore_best(g);
+ cur_cross = best_cross;
+ }
+ trying = 0;
+ for (iter = 0; iter < maxthispass; iter++) {
+ /*if (Verbose)
+ fprintf(stderr,
+ "mincross: pass %d iter %d trying %d cur_cross %d best_cross %d\n",
+ pass, iter, trying, cur_cross, best_cross);*/
+ if (trying++ >= Z.z().MinQuit)
+ break;
+ if (cur_cross == 0)
+ break;
+ mincross_step(g, iter);
+ if ((cur_cross = ncross(g)) <= best_cross) {
+ save_best(g);
+ if (cur_cross < Z.z().Convergence * best_cross)
+ trying = 0;
+ best_cross = cur_cross;
+ }
+ }
+ if (cur_cross == 0)
+ break;
+ }
+ if (cur_cross > best_cross)
+ restore_best(g);
+ if (best_cross > 0) {
+ transpose(g, false);
+ best_cross = ncross(g);
+ }
+ if (doBalance) {
+ for (iter = 0; iter < maxthispass; iter++)
+ balance(g);
+ }
+ return best_cross;
+} finally {
+LEAVING("7lrk2rxqnwwdau8cx85oqkpmv","mincross");
+}
+}
+
+
+
+
+//3 520049zkz9mafaeklgvm6s8e5
+// static void restore_best(graph_t * g)
+public static void restore_best(Agraph_s g) {
+ENTERING("520049zkz9mafaeklgvm6s8e5","restore_best");
+try {
+ Agnode_s n;
+ int r;
+ for (n = GD_nlist(g); n!=null; n = ND_next(n))
+ ND_order(n, (int)ND_coord(n).getDouble("x"));
+ for (r = GD_minrank(g); r <= GD_maxrank(g); r++) {
+ GD_rank(Z.z().Root).plus(r).setBoolean("valid", false);
+ qsort(GD_rank(g).plus(r).getPtr("v"),
+ GD_rank(g).plus(r).getInt("n"),
+ sizeof(GD_rank(g).plus(r).getPtr("v").plus(0)),
+ function(mincross__c.class, "nodeposcmpf"));
+ }
+} finally {
+LEAVING("520049zkz9mafaeklgvm6s8e5","restore_best");
+}
+}
+
+
+
+
+//3 8uyqc48j0oul206l3np85wj9p
+// static void save_best(graph_t * g)
+public static void save_best(Agraph_s g) {
+ENTERING("8uyqc48j0oul206l3np85wj9p","save_best");
+try {
+ Agnode_s n;
+ for (n = GD_nlist(g); n!=null; n = ND_next(n))
+ (ND_coord(n)).x = ND_order(n);
+} finally {
+LEAVING("8uyqc48j0oul206l3np85wj9p","save_best");
+}
+}
+
+
+
+
+//3 6d08fwi4dsk6ikk5d0gy6rq2h
+// static void merge_components(graph_t * g)
+public static void merge_components(Agraph_s g) {
+ENTERING("6d08fwi4dsk6ikk5d0gy6rq2h","merge_components");
+try {
+ int c;
+ Agnode_s u, v;
+ if (GD_comp(g).size <= 1)
+ return;
+ u = null;
+ for (c = 0; c < GD_comp(g).size; c++) {
+ v = (Agnode_s) GD_comp(g).getFromList(c);
+ if (u!=null)
+ ND_next(u, v);
+ ND_prev(v, u);
+ while (ND_next(v)!=null) {
+ v = ND_next(v);
+ }
+ u = v;
+ }
+ GD_comp(g).size = 1;
+ GD_nlist(g, GD_comp(g).getFromList(0));
+ GD_minrank(g, Z.z().GlobalMinRank);
+ GD_maxrank(g, Z.z().GlobalMaxRank);
+} finally {
+LEAVING("6d08fwi4dsk6ikk5d0gy6rq2h","merge_components");
+}
+}
+
+
+
+
+//3 91vebcdl3q3y0uyxef0iw71n9
+// static void merge2(graph_t * g)
+public static void merge2(Agraph_s g) {
+ENTERING("91vebcdl3q3y0uyxef0iw71n9","merge2");
+try {
+ int i, r;
+ Agnode_s v;
+ /* merge the components and rank limits */
+ merge_components(g);
+ /* install complete ranks */
+ for (r = GD_minrank(g); r <= GD_maxrank(g); r++) {
+ GD_rank(g).plus(r).setInt("n", GD_rank(g).plus(r).getInt("an"));
+ GD_rank(g).plus(r).setPtr("v", GD_rank(g).plus(r).getPtr("av"));
+ for (i = 0; i < GD_rank(g).plus(r).getInt("n"); i++) {
+ v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).getPtr();
+ if (v == null) {
+ /*if (Verbose)
+ fprintf(stderr,
+ "merge2: graph %s, rank %d has only %d < %d nodes\n",
+ agnameof(g), r, i, GD_rank(g)[r].n);*/
+ GD_rank(g).plus(r).setInt("n", i);
+ break;
+ }
+ ND_order(v, i);
+ }
+ }
+} finally {
+LEAVING("91vebcdl3q3y0uyxef0iw71n9","merge2");
+}
+}
+
+
+
+
+//3 3cwiyyk1d1jkoo9iqwb5bge4x
+// static void cleanup2(graph_t * g, int nc)
+public static void cleanup2(Agraph_s g, int nc) {
+ENTERING("3cwiyyk1d1jkoo9iqwb5bge4x","cleanup2");
+try {
+ int i, j, r, c;
+ Agnode_s v;
+ Agedge_s e;
+ if (Z.z().TI_list!=null) {
+ Memory.free(Z.z().TI_list);
+ Z.z().TI_list = null;
+ }
+ if (Z.z().TE_list!=null) {
+ Memory.free(Z.z().TE_list);
+ Z.z().TE_list = null;
+ }
+ /* fix vlists of clusters */
+ for (c = 1; c <= GD_n_cluster(g); c++)
+ rec_reset_vlists((Agraph_s) GD_clust(g).plus(c).getPtr());
+ /* remove node temporary edges for ordering nodes */
+ for (r = GD_minrank(g); r <= GD_maxrank(g); r++) {
+ for (i = 0; i < GD_rank(g).plus(r).getInt("n"); i++) {
+ v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).getPtr();
+ ND_order(v, i);
+ if (ND_flat_out(v).listNotNull()) {
+ for (j = 0; (e = (Agedge_s) ND_flat_out(v).getFromList(j))!=null; j++)
+ if (ED_edge_type(e) == 4) {
+ delete_flat_edge(e);
+ Memory.free(e.getPtr("base.data"));
+ Memory.free(e);
+ j--;
+ }
+ }
+ }
+ free_matrix((adjmatrix_t) GD_rank(g).plus(r).getPtr("flat"));
+ }
+ /*if (Verbose)
+ fprintf(stderr, "mincross %s: %d crossings, %.2f secs.\n",
+ agnameof(g), nc, elapsed_sec());*/
+} finally {
+LEAVING("3cwiyyk1d1jkoo9iqwb5bge4x","cleanup2");
+}
+}
+
+
+
+
+//3 arax68kzcf86dr2xu0gp962gq
+// static node_t *neighbor(node_t * v, int dir)
+public static Agnode_s neighbor(Agnode_s v, int dir) {
+ENTERING("arax68kzcf86dr2xu0gp962gq","neighbor");
+try {
+ Agnode_s rv;
+ rv = null;
+assert(v!=null);
+ if (dir < 0) {
+ if (ND_order(v) > 0)
+ rv = (Agnode_s) GD_rank(Z.z().Root).plus(ND_rank(v)).getArrayOfPtr("v").plus(ND_order(v) - 1).getPtr();
+ } else
+ rv = (Agnode_s) GD_rank(Z.z().Root).plus(ND_rank(v)).getArrayOfPtr("v").plus(ND_order(v) + 1).getPtr();
+assert((rv == null) || (ND_order(rv)-ND_order(v))*dir > 0);
+ return rv;
+} finally {
+LEAVING("arax68kzcf86dr2xu0gp962gq","neighbor");
+}
+}
+
+
+
+
+//3 1waqm8z71hi389dt1wqh0bmhr
+// static int is_a_normal_node_of(graph_t * g, node_t * v)
+public static boolean is_a_normal_node_of(Agraph_s g, Agnode_s v) {
+ENTERING("1waqm8z71hi389dt1wqh0bmhr","is_a_normal_node_of");
+try {
+ return ((ND_node_type(v) == 0) && agcontains(g, v));
+} finally {
+LEAVING("1waqm8z71hi389dt1wqh0bmhr","is_a_normal_node_of");
+}
+}
+
+
+
+
+//3 9f8atyi1unmleplge3rijdt4s
+// static int is_a_vnode_of_an_edge_of(graph_t * g, node_t * v)
+public static boolean is_a_vnode_of_an_edge_of(Agraph_s g, Agnode_s v) {
+ENTERING("9f8atyi1unmleplge3rijdt4s","is_a_vnode_of_an_edge_of");
+try {
+ if ((ND_node_type(v) == 1)
+ && (ND_in(v).size == 1) && (ND_out(v).size == 1)) {
+ Agedge_s e = (Agedge_s) ND_out(v).getFromList(0);
+ while (ED_edge_type(e) != 0)
+ e = ED_to_orig(e);
+ if (agcontains(g, e))
+ return NOT(false);
+ }
+ return false;
+} finally {
+LEAVING("9f8atyi1unmleplge3rijdt4s","is_a_vnode_of_an_edge_of");
+}
+}
+
+
+
+
+//3 eo7ulc8vwmoaig0j479yapve2
+// static int inside_cluster(graph_t * g, node_t * v)
+public static boolean inside_cluster(Agraph_s g, Agnode_s v) {
+ENTERING("eo7ulc8vwmoaig0j479yapve2","inside_cluster");
+try {
+ return (is_a_normal_node_of(g, v) | is_a_vnode_of_an_edge_of(g, v));
+} finally {
+LEAVING("eo7ulc8vwmoaig0j479yapve2","inside_cluster");
+}
+}
+
+
+
+
+//3 8xkmkt4r6gfqj8gk0mokszoz0
+// static node_t *furthestnode(graph_t * g, node_t * v, int dir)
+public static Agnode_s furthestnode(Agraph_s g, Agnode_s v, int dir) {
+ENTERING("8xkmkt4r6gfqj8gk0mokszoz0","furthestnode");
+try {
+ Agnode_s u, rv;
+ rv = u = v;
+ while ((u = neighbor(u, dir))!=null) {
+ if (is_a_normal_node_of(g, u))
+ rv = u;
+ else if (is_a_vnode_of_an_edge_of(g, u))
+ rv = u;
+ }
+ return rv;
+} finally {
+LEAVING("8xkmkt4r6gfqj8gk0mokszoz0","furthestnode");
+}
+}
+
+
+
+
+//3 bwmu2hkwud40601oq5vgo2f1h
+// void save_vlist(graph_t * g)
+public static void save_vlist(Agraph_s g) {
+ENTERING("bwmu2hkwud40601oq5vgo2f1h","save_vlist");
+try {
+ int r;
+ if (GD_rankleader(g)!=null)
+ for (r = GD_minrank(g); r <= GD_maxrank(g); r++) {
+ GD_rankleader(g).plus(r).setPtr(GD_rank(g).plus(r).getArrayOfPtr("v").plus(0).getPtr());
+ }
+} finally {
+LEAVING("bwmu2hkwud40601oq5vgo2f1h","save_vlist");
+}
+}
+
+
+
+
+//3 hwdxg97sefkuyd25x2q4pgzg
+// void rec_save_vlists(graph_t * g)
+public static void rec_save_vlists(Agraph_s g) {
+ENTERING("hwdxg97sefkuyd25x2q4pgzg","rec_save_vlists");
+try {
+ int c;
+ save_vlist(g);
+ for (c = 1; c <= GD_n_cluster(g); c++)
+ rec_save_vlists((Agraph_s) GD_clust(g).plus(c).getPtr());
+} finally {
+LEAVING("hwdxg97sefkuyd25x2q4pgzg","rec_save_vlists");
+}
+}
+
+
+
+
+//3 f3b4wat4uxn5oil720i5mwq4v
+// void rec_reset_vlists(graph_t * g)
+public static void rec_reset_vlists(Agraph_s g) {
+ENTERING("f3b4wat4uxn5oil720i5mwq4v","rec_reset_vlists");
+try {
+ int r, c;
+ Agnode_s u, v, w;
+ /* fix vlists of sub-clusters */
+ for (c = 1; c <= GD_n_cluster(g); c++)
+ rec_reset_vlists((Agraph_s) GD_clust(g).plus(c).getPtr());
+ if (GD_rankleader(g)!=null)
+ for (r = GD_minrank(g); r <= GD_maxrank(g); r++) {
+ v = (Agnode_s) GD_rankleader(g).plus(r).getPtr();
+ u = furthestnode(g, v, -1);
+ w = furthestnode(g, v, 1);
+ GD_rankleader(g).plus(r).setPtr(u);
+ GD_rank(g).plus(r).setPtr("v", GD_rank(dot_root(g)).plus(r).getPtr("v").plus(ND_order(u)));
+ GD_rank(g).plus(r).setInt("n", ND_order(w) - ND_order(u) + 1);
+ }
+} finally {
+LEAVING("f3b4wat4uxn5oil720i5mwq4v","rec_reset_vlists");
+}
+}
+
+
+
+
+//3 pv0rbbdopo4hmkbl5916qys1
+// static Agraph_t* realFillRanks (Agraph_t* g, int rnks[], int rnks_sz, Agraph_t* sg)
+public static Agraph_s realFillRanks(Agraph_s g, __ptr__ rnks, int rnks_sz, Agraph_s sg) {
+ENTERING("pv0rbbdopo4hmkbl5916qys1","realFillRanks");
+try {
+ UNSUPPORTED("2o2sf6xi2aumo5k0vglp4ik2y"); // static Agraph_t*
+UNSUPPORTED("3pmsfb0uhqmy5u141c932dtn1"); // realFillRanks (Agraph_t* g, int rnks[], int rnks_sz, Agraph_t* sg)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("apiu3v3f9zs9yrq8e25nd2rti"); // int i, c;
+UNSUPPORTED("6yramhpyls8c6kexupyqip8oq"); // Agedge_t* e;
+UNSUPPORTED("ci2zh69w6nhi0q816i1ixuy9k"); // Agnode_t* n;
+UNSUPPORTED("7z5fb6iyowsosn1hiz7opeoc6"); // for (c = 1; c <= GD_n_cluster(g); c++)
+UNSUPPORTED("wqxqmv4he79njsw6r7sludv"); // sg = realFillRanks (GD_clust(g)[c], rnks, rnks_sz, sg);
+UNSUPPORTED("8htor72y55gsejjdeh0e8gdrs"); // if (dot_root(g) == g)
+UNSUPPORTED("bjae04ek2s3o50399zti5a1jh"); // return sg;
+UNSUPPORTED("bqfhaopbxlwv8h4zfae1lhx6s"); // memset (rnks, 0, sizeof(int)*rnks_sz);
+UNSUPPORTED("7wq24g054kmx3aw25vk5ksj4"); // for (n = agfstnode(g); n; n = agnxtnode(g,n)) {
+UNSUPPORTED("do7v5atqor4gnpwgo18ibgjha"); // rnks[ND_rank(n)] = 1;
+UNSUPPORTED("9fo44dng5uojukw2kj0z8vvdu"); // for (e = agfstout(g,n); e; e = agnxtout(g,e)) {
+UNSUPPORTED("emlgvc6yzuboae72y6vxpn8z7"); // for (i = ND_rank(n)+1; i <= ND_rank(aghead(e)); i++)
+UNSUPPORTED("d3fd9x50ix980jjw3old2jrcr"); // rnks[i] = 1;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("7gfo0rr0un3w2026kt6ipknty"); // for (i = GD_minrank(g); i <= GD_maxrank(g); i++) {
+UNSUPPORTED("6mjvdb94lywg8d7ui6873f18p"); // if (rnks[i] == 0) {
+UNSUPPORTED("8g0zxrf8w2zly4wln02j3lbnb"); // if (!sg) {
+UNSUPPORTED("eqx93butvb7swnxbz9j29winp"); // sg = agsubg (dot_root(g), "_new_rank", 1);
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("9h7suegjozc071a939rh9apw1"); // n = agnode (sg, NULL, 1);
+UNSUPPORTED("8kclviftszfxkowsmlqq31u8"); // agbindrec(n, "Agnodeinfo_t", sizeof(Agnodeinfo_t), NOT(0));
+UNSUPPORTED("8wiry1vcdwy6bzdp98nmxss7c"); // ND_rank(n) = i;
+UNSUPPORTED("dy16sxtk3jj6127wavfcdx4yw"); // ND_lw(n) = ND_rw(n) = 0.5;
+UNSUPPORTED("6jr3li9af4sp0uxnpnoe8dqh8"); // ND_ht(n) = 1;
+UNSUPPORTED("c47fetnb62mx46qzuk9ag3qmu"); // ND_UF_size(n) = 1;
+UNSUPPORTED("899cyghezv8oxs0iomu58zncj"); // alloc_elist(4, ND_in(n));
+UNSUPPORTED("btfqtg58rqwdh7o4cc0gbaaai"); // alloc_elist(4, ND_out(n));
+UNSUPPORTED("9zap4z819hsiogrgmekh15f00"); // agsubnode (g, n, 1);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("1jw141gg4omv8r72xcbl5ln0o"); // return sg;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+} finally {
+LEAVING("pv0rbbdopo4hmkbl5916qys1","realFillRanks");
+}
+}
+
+
+
+
+//3 1qy9bupreg1pax62owznr98k
+// static void fillRanks (Agraph_t* g)
+public static void fillRanks(Agraph_s g) {
+ENTERING("1qy9bupreg1pax62owznr98k","fillRanks");
+try {
+ Agraph_s sg;
+ int rnks_sz = GD_maxrank(g) + 2;
+ __ptr__ rnks = zmalloc(size_t_array_of_integer(rnks_sz));
+ sg = realFillRanks (g, rnks, rnks_sz, null);
+ Memory.free (rnks);
+} finally {
+LEAVING("1qy9bupreg1pax62owznr98k","fillRanks");
+}
+}
+
+
+
+
+//3 7fy4chyk12o7bgp1rv3h27yl3
+// static void init_mincross(graph_t * g)
+public static void init_mincross(Agraph_s g) {
+ENTERING("7fy4chyk12o7bgp1rv3h27yl3","init_mincross");
+try {
+ int size;
+ //if (Verbose)
+ //start_timer();
+ Z.z().ReMincross = false;
+ Z.z().Root = g;
+ /* alloc +1 for the null terminator usage in do_ordering() */
+ /* also, the +1 avoids attempts to alloc 0 sizes, something
+ that efence complains about */
+ size = agnedges(dot_root(g)) + 1;
+ Z.z().TE_list = zmalloc(sizeof_starstar_empty(Agedge_s.class, size));
+ Z.z().TI_list = zmalloc(size_t_array_of_integer(size));
+ mincross_options(g);
+ if ((GD_flags(g) & (1 << 4))!=0)
+ fillRanks (g);
+ class2(g);
+ decompose(g, 1);
+ allocate_ranks(g);
+ ordered_edges(g);
+ Z.z().GlobalMinRank = GD_minrank(g);
+ Z.z().GlobalMaxRank = GD_maxrank(g);
+} finally {
+LEAVING("7fy4chyk12o7bgp1rv3h27yl3","init_mincross");
+}
+}
+
+
+
+
+//3 6fprrp93vmz0jn3l4ro0iropp
+// void flat_rev(Agraph_t * g, Agedge_t * e)
+public static void flat_rev(Agraph_s g, Agedge_s e) {
+ENTERING("6fprrp93vmz0jn3l4ro0iropp","flat_rev");
+try {
+ int j;
+ Agedge_s rev;
+ if (ND_flat_out(aghead(e)).listNotNull()==false)
+ // if (N(ND_flat_out(aghead(e)).getArrayOfPtr("list")))
+ rev = null;
+ else
+ for (j = 0; (rev = (Agedge_s) ND_flat_out(aghead(e)).getFromList(j))!=null; j++)
+ if (EQ(aghead(rev), agtail(e)))
+ break;
+ if (rev!=null) {
+ merge_oneway(e, rev);
+ if (ED_to_virt(e) == null)
+ ED_to_virt(e, rev);
+ if ((ED_edge_type(rev) == 4)
+ && (ED_to_orig(rev) == null))
+ ED_to_orig(rev, e);
+ elist_append(e, ND_other(agtail(e)));
+ } else {
+ rev = new_virtual_edge(aghead(e), agtail(e), e);
+ if (ED_edge_type(e) == 4)
+ ED_edge_type(rev, 4);
+ else
+ ED_edge_type(rev, 3);
+ ED_label(rev, ED_label(e));
+ flat_edge(g, rev);
+ }
+} finally {
+LEAVING("6fprrp93vmz0jn3l4ro0iropp","flat_rev");
+}
+}
+
+
+
+
+//3 63ol0ch6cgln1nvl5oiz6n1v0
+// static void flat_search(graph_t * g, node_t * v)
+public static void flat_search(Agraph_s g, Agnode_s v) {
+ENTERING("63ol0ch6cgln1nvl5oiz6n1v0","flat_search");
+try {
+ int i;
+ boolean hascl;
+ Agedge_s e;
+ adjmatrix_t M = (adjmatrix_t) GD_rank(g).plus(ND_rank(v)).getPtr("flat");
+ ND_mark(v, NOT(false));
+ ND_onstack(v, NOT(false));
+ hascl = (GD_n_cluster(dot_root(g)) > 0);
+ if (ND_flat_out(v).listNotNull())
+ for (i = 0; (e = (Agedge_s) ND_flat_out(v).getFromList(i))!=null; i++) {
+ if (hascl
+ && NOT(agcontains(g, agtail(e)) && agcontains(g, aghead(e))))
+ continue;
+ if (ED_weight(e) == 0)
+ continue;
+ if (ND_onstack(aghead(e)) == NOT(false)) {
+ assert(ND_low(aghead(e)) < M.getInt("nrows"));
+ assert(ND_low(agtail(e)) < M.getInt("ncols"));
+ M.getArrayOfInteger("data").plus(ND_low(aghead(e))*M.getInt("ncols")+ND_low(agtail(e))).setInt(1);
+ delete_flat_edge(e);
+ i--;
+ if (ED_edge_type(e) == 4)
+ continue;
+ flat_rev(g, e);
+ } else {
+ assert(ND_low(aghead(e)) < M.getInt("nrows"));
+ assert(ND_low(agtail(e)) < M.getInt("ncols"));
+ M.getArrayOfInteger("data").plus(ND_low(agtail(e))*M.getInt("ncols")+ND_low(aghead(e))).setInt(1);
+ if (ND_mark(aghead(e)) == 0)
+ flat_search(g, aghead(e));
+ }
+ }
+ ND_onstack(v, 0);
+} finally {
+LEAVING("63ol0ch6cgln1nvl5oiz6n1v0","flat_search");
+}
+}
+
+
+
+
+//3 3v5h7z4vqivibvpt913lg8at0
+// static void flat_breakcycles(graph_t * g)
+public static void flat_breakcycles(Agraph_s g) {
+ENTERING("3v5h7z4vqivibvpt913lg8at0","flat_breakcycles");
+try {
+ int i, r, flat;
+ Agnode_s v;
+ for (r = GD_minrank(g); r <= GD_maxrank(g); r++) {
+ flat = 0;
+ for (i = 0; i < GD_rank(g).plus(r).getInt("n"); i++) {
+ v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).getPtr();
+ ND_mark(v, 0);
+ ND_onstack(v, 0);
+ ND_low(v, i);
+ if ((ND_flat_out(v).size > 0) && (flat == 0)) {
+ GD_rank(g).plus(r).setPtr("flat",
+ new_matrix(GD_rank(g).plus(r).getInt("n"), GD_rank(g).plus(r).getInt("n")));
+ flat = 1;
+ }
+ }
+ if (flat!=0) {
+ for (i = 0; i < GD_rank(g).plus(r).getInt("n"); i++) {
+ v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).getPtr();
+ if (ND_mark(v) == 0)
+ flat_search(g, v);
+ }
+ }
+ }
+} finally {
+LEAVING("3v5h7z4vqivibvpt913lg8at0","flat_breakcycles");
+}
+}
+
+
+
+
+//3 d5vb6jiw8mhkaa8gjwn4eqfyn
+// void allocate_ranks(graph_t * g)
+public static void allocate_ranks(Agraph_s g) {
+ENTERING("d5vb6jiw8mhkaa8gjwn4eqfyn","allocate_ranks");
+try {
+ // REVIEW 17/01/2016
+ int r, low, high;
+ __ptr__ cn;
+ Agnode_s n;
+ Agedge_s e;
+ cn = zmalloc(size_t_array_of_integer(GD_maxrank(g) + 2));
+ /* must be 0 based, not GD_minrank */
+ for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) {
+ cn.plus(ND_rank(n)).setInt(1+cn.plus(ND_rank(n)).getInt());
+ for (e = agfstout(g, n); e!=null; e = agnxtout(g, e)) {
+ low = ND_rank(agtail(e));
+ high = ND_rank(aghead(e));
+ if (low > high) {
+ int t = low;
+ low = high;
+ high = t;
+ }
+ for (r = low + 1; r < high; r++)
+ cn.plus(r).setInt(1+cn.plus(r).getInt());
+ }
+ }
+ GD_rank(g, zmalloc(sizeof(rank_t.class, GD_maxrank(g) + 2)));
+ for (r = GD_minrank(g); r <= GD_maxrank(g); r++) {
+ GD_rank(g).plus(r).setInt("n", cn.plus(r).getInt());
+ GD_rank(g).plus(r).setInt("an", cn.plus(r).getInt());
+ __ptr__ tmp = zmalloc(sizeof_starstar_empty(Agnode_s.class, cn.plus(r).getInt() + 1));
+ GD_rank(g).plus(r).setPtr("v", tmp);
+ GD_rank(g).plus(r).setPtr("av", tmp);
+ }
+ Memory.free(cn);
+} finally {
+LEAVING("d5vb6jiw8mhkaa8gjwn4eqfyn","allocate_ranks");
+}
+}
+
+
+
+
+//3 3lxoqxhiri9fgt20zc5jz3aa5
+// void install_in_rank(graph_t * g, node_t * n)
+public static void install_in_rank(Agraph_s g, Agnode_s n) {
+ENTERING("3lxoqxhiri9fgt20zc5jz3aa5","install_in_rank");
+try {
+ int i, r;
+ r = ND_rank(n);
+ i = GD_rank(g).plus(r).getInt("n");
+ if (GD_rank(g).plus(r).getInt("an") <= 0) {
+UNSUPPORTED("8qk1xhvvb994zhv9aq10k4v12"); // agerr(AGERR, "install_in_rank, line %d: %s %s rank %d i = %d an = 0\n",
+UNSUPPORTED("53h8d82ax23hys2k21hjswp72"); // 1034, agnameof(g), agnameof(n), r, i);
+ return;
+ }
+ GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).setPtr(n);
+ ND_order(n, i);
+ GD_rank(g).plus(r).setInt("n", 1+GD_rank(g).plus(r).getInt("n"));
+ // assert(GD_rank(g)[r].n <= GD_rank(g)[r].an);
+ if (ND_order(n) > GD_rank(Z.z().Root).plus(r).getInt("an")) {
+UNSUPPORTED("399szcw1txekt1xssyw7s2x07"); // agerr(AGERR, "install_in_rank, line %d: ND_order(%s) [%d] > GD_rank(Root)[%d].an [%d]\n",
+UNSUPPORTED("9puojrmsk6vb1qc0jtr8ge4g8"); // 1052, agnameof(n), ND_order(n), r, GD_rank(Root)[r].an);
+ return;
+ }
+ if ((r < GD_minrank(g)) || (r > GD_maxrank(g))) {
+UNSUPPORTED("7o1thnqda767wqpe2lh9mj03t"); // agerr(AGERR, "install_in_rank, line %d: rank %d not in rank range [%d,%d]\n",
+UNSUPPORTED("d2ugluzf7bmj7osicgitgy3sr"); // 1057, r, GD_minrank(g), GD_maxrank(g));
+ return;
+ }
+ if (GD_rank(g).plus(r).getPtr("v").plus(ND_order(n)).comparePointer(
+ GD_rank(g).plus(r).getPtr("av").plus(GD_rank(Z.z().Root).plus(r).getInt("an")))>0) {
+UNSUPPORTED("3eb32nc5czs5auwzz5p5mtl04"); // agerr(AGERR, "install_in_rank, line %d: GD_rank(g)[%d].v + ND_order(%s) [%d] > GD_rank(g)[%d].av + GD_rank(Root)[%d].an [%d]\n",
+UNSUPPORTED("3qe3qpw5h6vse39xs1ca9sjmo"); // 1062, r, agnameof(n),GD_rank(g)[r].v + ND_order(n), r, r, GD_rank(g)[r].av+GD_rank(Root)[r].an);
+ return;
+ }
+} finally {
+LEAVING("3lxoqxhiri9fgt20zc5jz3aa5","install_in_rank");
+}
+}
+
+
+
+
+//3 7t49bz6lfcbd9v63ds2x3518z
+// void build_ranks(graph_t * g, int pass)
+public static void build_ranks(Agraph_s g, int pass) {
+ENTERING("7t49bz6lfcbd9v63ds2x3518z","build_ranks");
+try {
+ int i, j;
+ Agnode_s n, n0 = null;
+ __ptr__ otheredges;
+ nodequeue q;
+ q = new_queue(GD_n_nodes(g));
+ for (n = GD_nlist(g); n!=null; n = ND_next(n))
+ ND_mark(n, 0);
+ for (i = GD_minrank(g); i <= GD_maxrank(g); i++)
+ GD_rank(g).plus(i).setInt("n", 0);
+ for (n = GD_nlist(g); n!=null; n = ND_next(n)) {
+ otheredges = ((pass == 0) ? ND_in(n).getTheList() : ND_out(n).getTheList());
+ if (otheredges.plus(0).getPtr() != null)
+ continue;
+ if ((ND_mark(n)) == 0) {
+ ND_mark(n, 1);
+ enqueue(q, n);
+ while ((n0 = dequeue(q))!=null) {
+ if (ND_ranktype(n0) != 7) {
+ install_in_rank(g, n0);
+ enqueue_neighbors(q, n0, pass);
+ } else {
+ install_cluster(g, n0, pass, q);
+ }
+ }
+ }
+ }
+ if (dequeue(q)!=null)
+UNSUPPORTED("1b3hbd5artrq77i58q2o9kgz3"); // agerr(AGERR, "surprise\n");
+ for (i = GD_minrank(g); i <= GD_maxrank(g); i++) {
+ GD_rank(Z.z().Root).plus(i).setInt("valid", 0);
+ if (GD_flip(g)!=0 && (GD_rank(g).plus(i).getInt("n") > 0)) {
+ int nn, ndiv2;
+ __ptr__ vlist = GD_rank(g).plus(i).getPtr("v");
+ nn = GD_rank(g).plus(i).getInt("n") - 1;
+ ndiv2 = nn / 2;
+ for (j = 0; j <= ndiv2; j++)
+ exchange((Agnode_s)vlist.plus(j).getPtr(), (Agnode_s)vlist.plus(nn - j).getPtr());
+ }
+ }
+ if (EQ(g, dot_root(g)) && ncross(g) > 0)
+ transpose(g, false);
+ free_queue(q);
+} finally {
+LEAVING("7t49bz6lfcbd9v63ds2x3518z","build_ranks");
+}
+}
+
+
+
+
+//3 bmjlneqxex6a9silzkkidkx6s
+// void enqueue_neighbors(nodequeue * q, node_t * n0, int pass)
+public static void enqueue_neighbors(nodequeue q, Agnode_s n0, int pass) {
+ENTERING("bmjlneqxex6a9silzkkidkx6s","enqueue_neighbors");
+try {
+ int i;
+ Agedge_s e;
+ if (pass == 0) {
+ for (i = 0; i < ND_out(n0).size; i++) {
+ e = (Agedge_s) ND_out(n0).getFromList(i);
+ if (((ND_mark(aghead(e)))) == 0) {
+ ND_mark(aghead(e), 1);
+ enqueue(q, aghead(e));
+ }
+ }
+ } else {
+ for (i = 0; i < ND_in(n0).size; i++) {
+ e = (Agedge_s) ND_in(n0).getFromList(i);
+ if (((ND_mark(agtail(e)))) == 0) {
+ ND_mark(agtail(e), 1);
+ enqueue(q, agtail(e));
+ }
+ }
+ }
+} finally {
+LEAVING("bmjlneqxex6a9silzkkidkx6s","enqueue_neighbors");
+}
+}
+
+
+
+
+//3 c8nqj0v20api63pikohsbx92u
+// static int constraining_flat_edge(Agraph_t *g, Agnode_t *v, Agedge_t *e)
+public static boolean constraining_flat_edge(Agraph_s g, Agnode_s v, Agedge_s e) {
+ENTERING("c8nqj0v20api63pikohsbx92u","constraining_flat_edge");
+try {
+ if (ED_weight(e) == 0) return false;
+ if (N(inside_cluster(g,agtail(e)))) return false;
+ if (N(inside_cluster(g,aghead(e)))) return false;
+ return NOT(false);
+} finally {
+LEAVING("c8nqj0v20api63pikohsbx92u","constraining_flat_edge");
+}
+}
+
+
+
+
+//3 46to0pkk188af2dlkik2ab7e3
+// static int postorder(graph_t * g, node_t * v, node_t ** list, int r)
+public static int postorder(Agraph_s g, Agnode_s v, __ptr__ list, int r) {
+ENTERING("46to0pkk188af2dlkik2ab7e3","postorder");
+try {
+ Agedge_s e;
+ int i, cnt = 0;
+ ND_mark(v, NOT(false));
+ if (ND_flat_out(v).size > 0) {
+ for (i = 0; (e = (Agedge_s) ND_flat_out(v).getFromList(i))!=null; i++) {
+ if (N(constraining_flat_edge(g,v,e))) continue;
+ if ((ND_mark(aghead(e))) == 0)
+ cnt += postorder(g, aghead(e), list.plus(cnt), r);
+ }
+ }
+ assert(ND_rank(v) == r);
+ list.plus(cnt++).setPtr(v);
+ return cnt;
+} finally {
+LEAVING("46to0pkk188af2dlkik2ab7e3","postorder");
+}
+}
+
+
+
+
+//3 zuxoswju917kyl08a5f0gtp6
+// static void flat_reorder(graph_t * g)
+public static void flat_reorder(Agraph_s g) {
+ENTERING("zuxoswju917kyl08a5f0gtp6","flat_reorder");
+try {
+ int i, j, r, pos, n_search, local_in_cnt, local_out_cnt, base_order;
+ Agnode_s v, t;
+ __ptr__ left, right;
+ __ptr__ temprank = null;
+ Agedge_s flat_e, e;
+ if (GD_has_flat_edges(g) == 0)
+ return;
+ for (r = GD_minrank(g); r <= GD_maxrank(g); r++) {
+ if (GD_rank(g).plus(r).getInt("n") == 0) continue;
+ base_order = ND_order(GD_rank(g).plus(r).getArrayOfPtr("v").plus(0).getPtr());
+ for (i = 0; i < GD_rank(g).plus(r).getInt("n"); i++)
+ ND_mark(GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).getPtr(), 0);
+ temprank = ALLOC(i + 1, temprank, Agnode_s.class);
+ pos = 0;
+ /* construct reverse topological sort order in temprank */
+ for (i = 0; i < GD_rank(g).plus(r).getInt("n"); i++) {
+ if (GD_flip(g)!=0) v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).getPtr();
+ else v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(GD_rank(g).plus(r).getInt("n") - i - 1).getPtr();
+ local_in_cnt = local_out_cnt = 0;
+ for (j = 0; j < ND_flat_in(v).size; j++) {
+ flat_e = (Agedge_s) ND_flat_in(v).getFromList(j);
+ if (constraining_flat_edge(g,v,flat_e)) local_in_cnt++;
+ }
+ for (j = 0; j < ND_flat_out(v).size; j++) {
+ flat_e = (Agedge_s) ND_flat_out(v).getFromList(j);
+ if (constraining_flat_edge(g,v,flat_e)) local_out_cnt++;
+ }
+ if ((local_in_cnt == 0) && (local_out_cnt == 0))
+ temprank.plus(pos++).setPtr(v);
+ else {
+ if (((ND_mark(v)) == 0) && (local_in_cnt == 0)) {
+ left = temprank.plus(pos);
+ n_search = postorder(g, v, left, r);
+ pos += n_search;
+ }
+ }
+ }
+ if (pos!=0) {
+ if (GD_flip(g) == 0) {
+ left = temprank;
+ right = temprank.plus(pos - 1);
+ while (left.comparePointer(right) < 0) {
+ t = (Agnode_s) left.getPtr();
+ left.setPtr(right.getPtr());
+ right.setPtr(t);
+ left = left.plus(1);
+ right = right.plus(-1);
+ }
+ }
+ for (i = 0; i < GD_rank(g).plus(r).getInt("n"); i++) {
+ v = (Agnode_s) temprank.plus(i).getPtr();
+ GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).setPtr(v);
+ ND_order(v, i + base_order);
+ }
+ /* nonconstraint flat edges must be made LR */
+ for (i = 0; i < GD_rank(g).plus(r).getInt("n"); i++) {
+ v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).getPtr();
+ if (ND_flat_out(v).listNotNull()) {
+ for (j = 0; (e = (Agedge_s) ND_flat_out(v).getFromList(j))!=null; j++) {
+ if ( ((GD_flip(g) == 0) && (ND_order(aghead(e)) < ND_order(agtail(e)))) ||
+ ( (GD_flip(g)!=0) && (ND_order(aghead(e)) > ND_order(agtail(e)) ))) {
+ assert(constraining_flat_edge(g,v,e) == false);
+ delete_flat_edge(e);
+ j--;
+ flat_rev(g, e);
+ }
+ }
+ }
+ }
+ /* postprocess to restore intended order */
+ }
+ /* else do no harm! */
+ GD_rank(Z.z().Root).plus(r).setInt("valid", 0);
+ }
+ if (temprank!=null)
+ Memory.free(temprank);
+} finally {
+LEAVING("zuxoswju917kyl08a5f0gtp6","flat_reorder");
+}
+}
+
+
+
+
+//3 inv6wazjcnh4xkzzphsdcmg4
+// static void reorder(graph_t * g, int r, int reverse, int hasfixed)
+public static void reorder(Agraph_s g, int r, boolean reverse, boolean hasfixed) {
+ENTERING("inv6wazjcnh4xkzzphsdcmg4","reorder");
+try {
+ boolean changed = false;
+ int nelt;
+ boolean muststay, sawclust;
+ __ptr__ vlist = GD_rank(g).plus(r).getPtr("v");
+ __ptr__ lp, rp=null, ep = vlist.plus(GD_rank(g).plus(r).getInt("n"));
+ for (nelt = GD_rank(g).plus(r).getInt("n") - 1; nelt >= 0; nelt--) {
+ lp = vlist;
+ while (lp.comparePointer(ep)<0) {
+ /* find leftmost node that can be compared */
+ while ((lp.comparePointer(ep) < 0) && (ND_mval(lp.getPtr()) < 0))
+ lp = lp.plus(1);
+ if (lp.comparePointer(ep) >= 0)
+ break;
+ /* find the node that can be compared */
+ sawclust = muststay = false;
+ for (rp = lp.plus(1); rp.comparePointer(ep) < 0; rp=rp.plus(1)) {
+ if (sawclust && ND_clust(rp.getPtr())!=null)
+ continue; /* ### */
+ if (left2right(g, (Agnode_s) lp.getPtr(), (Agnode_s) rp.getPtr())) {
+ muststay = NOT(false);
+ break;
+ }
+ if (ND_mval(rp.getPtr()) >= 0)
+ break;
+ if (ND_clust(rp.getPtr())!=null)
+ sawclust = NOT(false); /* ### */
+ }
+ if (rp.comparePointer(ep) >= 0)
+ break;
+ if (muststay == false) {
+ int p1 = (int) (ND_mval(lp.getPtr()));
+ int p2 = (int) (ND_mval(rp.getPtr()));
+ if ((p1 > p2) || ((p1 == p2) && (reverse))) {
+ exchange((Agnode_s)lp.getPtr(), (Agnode_s)rp.getPtr());
+ changed=true;
+ }
+ }
+ lp = rp;
+ }
+ if ((hasfixed == false) && (reverse == false))
+ ep = ep.plus(-1);
+ }
+ if (changed) {
+ GD_rank(Z.z().Root).plus(r).setBoolean("valid", false);
+ if (r > 0)
+ GD_rank(Z.z().Root).plus(r - 1).setBoolean("valid", false);
+ }
+} finally {
+LEAVING("inv6wazjcnh4xkzzphsdcmg4","reorder");
+}
+}
+
+
+
+
+//3 14t80owwvm7io4ou6czb9ba9
+// static void mincross_step(graph_t * g, int pass)
+public static void mincross_step(Agraph_s g, int pass) {
+ENTERING("14t80owwvm7io4ou6czb9ba9","mincross_step");
+try {
+ int r, other, first, last, dir;
+ boolean hasfixed, reverse;
+ if ((pass % 4) < 2)
+ reverse = NOT(false);
+ else
+ reverse = false;
+ if ((pass % 2)!=0) {
+ r = GD_maxrank(g) - 1;
+ dir = -1;
+ } /* up pass */
+ else {
+ r = 1;
+ dir = 1;
+ } /* down pass */
+ if (pass % 2 == 0) { /* down pass */
+ first = GD_minrank(g) + 1;
+ if (GD_minrank(g) > GD_minrank(Z.z().Root))
+ first--;
+ last = GD_maxrank(g);
+ dir = 1;
+ } else { /* up pass */
+ first = GD_maxrank(g) - 1;
+ last = GD_minrank(g);
+ if (GD_maxrank(g) < GD_maxrank(Z.z().Root))
+ first++;
+ dir = -1;
+ }
+ for (r = first; r != last + dir; r += dir) {
+ other = r - dir;
+ hasfixed = medians(g, r, other);
+ reorder(g, r, reverse, hasfixed);
+ }
+ transpose(g, NOT(reverse));
+} finally {
+LEAVING("14t80owwvm7io4ou6czb9ba9","mincross_step");
+}
+}
+
+
+
+
+//3 aq18oa4k4grixvfjx7r2qnl6r
+// static int local_cross(elist l, int dir)
+public static int local_cross(final __struct__<elist> l, int dir) {
+// WARNING!! STRUCT
+return local_cross_w_(l.copy(), dir);
+}
+private static int local_cross_w_(final __struct__<elist> l, int dir) {
+ENTERING("aq18oa4k4grixvfjx7r2qnl6r","local_cross");
+try {
+ UNSUPPORTED("3jmndo6p8u1x5wp297qpt0jto"); // static int local_cross(elist l, int dir)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("2gmuwkiycm22in3d9obd7bzll"); // int i, j, is_out;
+UNSUPPORTED("bcforqedbns82qhgqkocjbvm"); // int cross = 0;
+UNSUPPORTED("9b48a157azcrz2ihzqehhpsvs"); // edge_t *e, *f;
+UNSUPPORTED("8az9seos08f2sa39127q6yo9"); // if (dir > 0)
+UNSUPPORTED("8xj2loay6suplxyiun7hlye39"); // is_out = NOT(0);
+UNSUPPORTED("div10atae09n36x269sl208r1"); // else
+UNSUPPORTED("56xhe3qw67sg923dvr87k8hho"); // is_out = 0;
+UNSUPPORTED("16t717mqlhfn3egmgor8are83"); // for (i = 0; (e = l.list[i]); i++) {
+UNSUPPORTED("3lbek06034x2gsimhxwfmgf0r"); // if (is_out)
+UNSUPPORTED("2pkmgz4cm8lwpwxgcg3znjm90"); // for (j = i + 1; (f = l.list[j]); j++) {
+UNSUPPORTED("8wj6phwqlmunjcua9abo6093d"); // if ((ND_order(aghead(f)) - ND_order(aghead(e)))
+UNSUPPORTED("pt12knuv94kokmtrwpdp1m0j"); // * (ED_tail_port(f).p.x - ED_tail_port(e).p.x) < 0)
+UNSUPPORTED("bw8rwv11yqzss88pad7ljil8a"); // cross += ED_xpenalty(e) * ED_xpenalty(f);
+UNSUPPORTED("6to1esmb8qfrhzgtr7jdqleja"); // } else
+UNSUPPORTED("2pkmgz4cm8lwpwxgcg3znjm90"); // for (j = i + 1; (f = l.list[j]); j++) {
+UNSUPPORTED("bza83c6rmihrkzyllwf0jm4tn"); // if ((ND_order(agtail(f)) - ND_order(agtail(e)))
+UNSUPPORTED("csrxg0y1azmvde7t833lm13sp"); // * (ED_head_port(f).p.x - ED_head_port(e).p.x) < 0)
+UNSUPPORTED("bw8rwv11yqzss88pad7ljil8a"); // cross += ED_xpenalty(e) * ED_xpenalty(f);
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("8dm5o3tsfvxtjilyob6q5ndi1"); // return cross;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+} finally {
+LEAVING("aq18oa4k4grixvfjx7r2qnl6r","local_cross");
+}
+}
+
+
+
+
+//3 bk5nklhfqgg0uwkv7tv6dn8r2
+// static int rcross(graph_t * g, int r)
+//static __ptr__ Count;
+//static int C;
+public static int rcross(Agraph_s g, int r) {
+ENTERING("bk5nklhfqgg0uwkv7tv6dn8r2","rcross");
+try {
+ int top, bot, cross, max, i, k;
+ Agnode_s v;
+ __ptr__ rtop;
+ cross = 0;
+ max = 0;
+ rtop = GD_rank(g).plus(r).getPtr("v");
+ if (Z.z().C <= GD_rank(Z.z().Root).plus(r + 1).getInt("n")) {
+ Z.z().C = GD_rank(Z.z().Root).plus(r + 1).getInt("n") + 1;
+ Z.z().Count = ALLOC_INT(Z.z().C, Z.z().Count);
+ }
+ for (i = 0; i < GD_rank(g).plus(r + 1).getInt("n"); i++)
+ Z.z().Count.plus(i).setInt(0);
+ for (top = 0; top < GD_rank(g).plus(r).getInt("n"); top++) {
+ Agedge_s e;
+ if (max > 0) {
+ for (i = 0; (e = (Agedge_s) ND_out(rtop.plus(top).getPtr()).getFromList(i))!=null; i++) {
+ for (k = ND_order(aghead(e)) + 1; k <= max; k++)
+ cross += Z.z().Count.plus(k).getInt() * ED_xpenalty(e);
+ }
+ }
+ for (i = 0; (e = (Agedge_s) ND_out(rtop.plus(top).getPtr()).getFromList(i))!=null; i++) {
+ int inv = ND_order(aghead(e));
+ if (inv > max)
+ max = inv;
+ Z.z().Count.plus(inv).setInt(Z.z().Count.plus(inv).getInt() + ED_xpenalty(e));
+ }
+ }
+ for (top = 0; top < GD_rank(g).plus(r).getInt("n"); top++) {
+ v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(top).getPtr();
+ if (ND_has_port(v))
+ cross += local_cross(ND_out(v), 1);
+ }
+ for (bot = 0; bot < GD_rank(g).plus(r + 1).getInt("n"); bot++) {
+ v = (Agnode_s) GD_rank(g).plus(r + 1).getArrayOfPtr("v").plus(bot).getPtr();
+ if (ND_has_port(v))
+ cross += local_cross(ND_in(v), -1);
+ }
+ return cross;
+} finally {
+LEAVING("bk5nklhfqgg0uwkv7tv6dn8r2","rcross");
+}
+}
+
+
+
+
+//3 dbjmz2tnii2pn9sxg26ap6w5r
+// int ncross(graph_t * g)
+public static int ncross(Agraph_s g) {
+ENTERING("dbjmz2tnii2pn9sxg26ap6w5r","ncross");
+try {
+ int r, count, nc;
+ g = Z.z().Root;
+ count = 0;
+ for (r = GD_minrank(g); r < GD_maxrank(g); r++) {
+ if (GD_rank(g).plus(r).getBoolean("valid"))
+ count += GD_rank(g).plus(r).getInt("cache_nc");
+ else {
+ nc = rcross(g, r);
+ GD_rank(g).plus(r).getInt("cache_nc");
+ count += nc;
+ GD_rank(g).plus(r).setInt("valid", 1);
+ }
+ }
+ return count;
+} finally {
+LEAVING("dbjmz2tnii2pn9sxg26ap6w5r","ncross");
+}
+}
+
+
+
+
+//3 8wrsq8a2vooekcm3cdtv5x3ke
+// static int ordercmpf(int *i0, int *i1)
+public static int ordercmpf(__ptr__ i0, __ptr__ i1) {
+ENTERING("8wrsq8a2vooekcm3cdtv5x3ke","ordercmpf");
+try {
+ return (i0.getInt()) - (i1.getInt());
+} finally {
+LEAVING("8wrsq8a2vooekcm3cdtv5x3ke","ordercmpf");
+}
+}
+
+
+
+
+//3 7397kynkpqf2m1jkpmi8pgf0n
+// static int flat_mval(node_t * n)
+public static boolean flat_mval(Agnode_s n) {
+ENTERING("7397kynkpqf2m1jkpmi8pgf0n","flat_mval");
+try {
+ int i;
+ Agedge_s e;
+ __ptr__ fl;
+ Agnode_s nn;
+ if (ND_flat_in(n).size > 0) {
+ fl = ND_flat_in(n).getTheList();
+ nn = agtail(fl.plus(0).getPtr());
+ for (i = 1; (e = (Agedge_s) fl.plus(i).getPtr())!=null; i++)
+ if (ND_order(agtail(e)) > ND_order(nn))
+ nn = agtail(e);
+ if (ND_mval(nn) >= 0) {
+ ND_mval(n, ND_mval(nn) + 1);
+ return false;
+ }
+ } else if (ND_flat_out(n).size > 0) {
+ fl = ND_flat_out(n).getTheList();
+ nn = aghead(fl.plus(0).getPtr());
+ for (i = 1; (e = (Agedge_s) fl.plus(i).getPtr())!=null; i++)
+ if (ND_order(aghead(e)) < ND_order(nn))
+ nn = aghead(e);
+ if (ND_mval(nn) > 0) {
+ ND_mval(n, ND_mval(nn) - 1);
+ return false;
+ }
+ }
+ return NOT(false);
+} finally {
+LEAVING("7397kynkpqf2m1jkpmi8pgf0n","flat_mval");
+}
+}
+
+
+
+
+//3 azvdpixwwxspl31wp7f4k4fmh
+// static boolean medians(graph_t * g, int r0, int r1)
+public static boolean medians(Agraph_s g, int r0, int r1) {
+ENTERING("azvdpixwwxspl31wp7f4k4fmh","medians");
+try {
+ int i, j, j0, lm, rm, lspan, rspan;
+ __ptr__ list;
+ Agnode_s n;
+ __ptr__ v;
+ Agedge_s e;
+ boolean hasfixed = false;
+ list = Z.z().TI_list;
+ v = GD_rank(g).plus(r0).getPtr("v");
+ for (i = 0; i < GD_rank(g).plus(r0).getInt("n"); i++) {
+ n = (Agnode_s) v.plus(i).getPtr();
+ j = 0;
+ if (r1 > r0)
+ for (j0 = 0; (e = (Agedge_s) ND_out(n).getFromList(j0))!=null; j0++) {
+ if (ED_xpenalty(e) > 0)
+ list.plus(j++).setInt((256 * ND_order(aghead(e)) + (ED_head_port(e)).getInt("order")));
+ } else
+ for (j0 = 0; (e = (Agedge_s) ND_in(n).getFromList(j0))!=null; j0++) {
+ if (ED_xpenalty(e) > 0)
+ list.plus(j++).setInt((256 * ND_order(agtail(e)) + (ED_tail_port(e)).getInt("order")));
+ }
+ switch (j) {
+ case 0:
+ ND_mval(n, -1);
+ break;
+ case 1:
+ ND_mval(n, list.plus(0).getInt());
+ break;
+ case 2:
+ ND_mval(n, (list.plus(0).getInt() + list.plus(1).getInt()) / 2);
+ break;
+ default:
+ qsort(list,
+ j,
+ sizeof(list.plus(0)),
+ function(mincross__c.class, "ordercmpf"));
+ if (j % 2!=0)
+ ND_mval(n, list.plus(j / 2).getInt());
+ else {
+ /* weighted median */
+ rm = j / 2;
+ lm = rm - 1;
+ rspan = list.plus(j - 1).getInt() - list.plus(rm).getInt();
+ lspan = list.plus(lm).getInt() - list.plus(0).getInt();
+ if (lspan == rspan)
+ ND_mval(n, (list.plus(lm).getInt() + list.plus(rm).getInt()) / 2);
+ else {
+ int w = list.plus(lm).getInt() * rspan + list.plus(rm).getInt() * lspan;
+ ND_mval(n, w / (lspan + rspan));
+ }
+ }
+ }
+ }
+ for (i = 0; i < GD_rank(g).plus(r0).getInt("n"); i++) {
+ n = (Agnode_s) v.plus(i).getPtr();
+ if ((ND_out(n).size == 0) && (ND_in(n).size == 0))
+ hasfixed |= flat_mval(n);
+ }
+ return hasfixed;
+} finally {
+LEAVING("azvdpixwwxspl31wp7f4k4fmh","medians");
+}
+}
+
+
+
+
+//3 2vdhpcykq508ma83aif8sxcbd
+// static int nodeposcmpf(node_t ** n0, node_t ** n1)
+public static Object nodeposcmpf(__ptr__ n0, __ptr__ n1) {
+ENTERING("2vdhpcykq508ma83aif8sxcbd","nodeposcmpf");
+try {
+ return (ND_order(n0.getPtr()) - ND_order(n1.getPtr()));
+} finally {
+LEAVING("2vdhpcykq508ma83aif8sxcbd","nodeposcmpf");
+}
+}
+
+
+
+
+//3 87c98ld9c4hv87ekcxdyojx8l
+// static int edgeidcmpf(edge_t ** e0, edge_t ** e1)
+public static Object edgeidcmpf(Object... arg) {
+UNSUPPORTED("apvyql25ya1p7w7i7396gucdg"); // static int edgeidcmpf(edge_t ** e0, edge_t ** e1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("9gjc2rit3ezq4il0t5aymk1z"); // return (AGSEQ(*e0) - AGSEQ(*e1));
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+//1 40as9opn4mzq4gp4nkmp4dj8w
+// static int table[3][3] =
+private static int table[][] = new int[][]{
+ /* ordinary */ {1, 1, 1},
+ /* singleton */ {1, 2, 2},
+ /* virtual */ {1, 2, 4}
+};
+
+
+
+//3 7j638prioxd97f74v1v4adbsf
+// static int endpoint_class(node_t * n)
+public static int endpoint_class(Agnode_s n) {
+ENTERING("7j638prioxd97f74v1v4adbsf","endpoint_class");
+try {
+ if (ND_node_type(n) == 1)
+ return 2;
+ if (ND_weight_class(n) <= 1)
+ return 1;
+ return 0;
+} finally {
+LEAVING("7j638prioxd97f74v1v4adbsf","endpoint_class");
+}
+}
+
+
+
+
+//3 es57bn7ga4wc9tqtcixpn0451
+// void virtual_weight(edge_t * e)
+public static void virtual_weight(Agedge_s e) {
+ENTERING("es57bn7ga4wc9tqtcixpn0451","virtual_weight");
+try {
+ int t;
+ t = table[endpoint_class(agtail(e))][endpoint_class(aghead(e))];
+ ED_weight(e, ED_weight(e) * t);
+} finally {
+LEAVING("es57bn7ga4wc9tqtcixpn0451","virtual_weight");
+}
+}
+
+
+
+
+//3 7ru09oqbudpeofsthzveig2m2
+// static void mincross_options(graph_t * g)
+public static void mincross_options(Agraph_s g) {
+ENTERING("7ru09oqbudpeofsthzveig2m2","mincross_options");
+try {
+ CString p;
+ double f;
+ /* set default values */
+ Z.z().MinQuit = 8;
+ Z.z().MaxIter = 24;
+ Z.z().Convergence = .995;
+ p = agget(g, new CString("mclimit"));
+ if (p!=null && ((f = atof(p)) > 0.0)) {
+UNSUPPORTED("4iu53eiz077u6joqgwawca8ya"); // MinQuit = ((1)>(MinQuit * f)?(1):(MinQuit * f));
+UNSUPPORTED("38po81l36cibw6jc3qlsscpcu"); // MaxIter = ((1)>(MaxIter * f)?(1):(MaxIter * f));
+ }
+} finally {
+LEAVING("7ru09oqbudpeofsthzveig2m2","mincross_options");
+}
+}
+
+
+}
diff --git a/src/gen/lib/dotgen/position__c.java b/src/gen/lib/dotgen/position__c.java
new file mode 100644
index 0000000..b0e40a1
--- /dev/null
+++ b/src/gen/lib/dotgen/position__c.java
@@ -0,0 +1,2170 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * Project Info: http://plantuml.com
+ *
+ * If you like this project or if you find it useful, you can support us at:
+ *
+ * http://plantuml.com/patreon (only 1$ per month!)
+ * http://plantuml.com/paypal
+ *
+ * This file is part of Smetana.
+ * Smetana is a partial translation of Graphviz/Dot sources from C to Java.
+ *
+ * (C) Copyright 2009-2017, Arnaud Roques
+ *
+ * This translation is distributed under the same Licence as the original C program:
+ *
+ *************************************************************************
+ * Copyright (c) 2011 AT&T Intellectual Property
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: See CVS logs. Details at http://www.graphviz.org/
+ *************************************************************************
+ *
+ * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
+ * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0]
+ *
+ * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES
+ * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ *
+ * You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package gen.lib.dotgen;
+import static gen.lib.cgraph.attr__c.agget;
+import static gen.lib.cgraph.edge__c.aghead;
+import static gen.lib.cgraph.edge__c.agtail;
+import static gen.lib.cgraph.graph__c.agnnodes;
+import static gen.lib.cgraph.obj__c.agcontains;
+import static gen.lib.cgraph.obj__c.agroot;
+import static gen.lib.common.memory__c.zmalloc;
+import static gen.lib.common.ns__c.rank;
+import static gen.lib.common.splines__c.selfRightSpace;
+import static gen.lib.common.utils__c.late_int;
+import static gen.lib.dotgen.cluster__c.mark_lowclusters;
+import static gen.lib.dotgen.conc__c.dot_concentrate;
+import static gen.lib.dotgen.dotinit__c.dot_root;
+import static gen.lib.dotgen.fastgr__c.fast_edge;
+import static gen.lib.dotgen.fastgr__c.find_fast_edge;
+import static gen.lib.dotgen.fastgr__c.virtual_node;
+import static gen.lib.dotgen.fastgr__c.zapinlist;
+import static gen.lib.dotgen.flat__c.flat_edges;
+import static smetana.core.JUtils.EQ;
+import static smetana.core.JUtils.NEQ;
+import static smetana.core.JUtils.USHRT_MAX;
+import static smetana.core.JUtils.atof;
+import static smetana.core.JUtils.enumAsInt;
+import static smetana.core.JUtils.sizeof;
+import static smetana.core.JUtilsDebug.ENTERING;
+import static smetana.core.JUtilsDebug.LEAVING;
+import static smetana.core.Macro.AGINEDGE;
+import static smetana.core.Macro.AGOUTEDGE;
+import static smetana.core.Macro.AGTYPE;
+import static smetana.core.Macro.ALLOC_empty;
+import static smetana.core.Macro.ED_dist;
+import static smetana.core.Macro.ED_head_port;
+import static smetana.core.Macro.ED_label;
+import static smetana.core.Macro.ED_minlen;
+import static smetana.core.Macro.ED_tail_port;
+import static smetana.core.Macro.ED_to_orig;
+import static smetana.core.Macro.ED_weight;
+import static smetana.core.Macro.GD_bb;
+import static smetana.core.Macro.GD_border;
+import static smetana.core.Macro.GD_clust;
+import static smetana.core.Macro.GD_drawing;
+import static smetana.core.Macro.GD_exact_ranksep;
+import static smetana.core.Macro.GD_flip;
+import static smetana.core.Macro.GD_has_labels;
+import static smetana.core.Macro.GD_ht1;
+import static smetana.core.Macro.GD_ht2;
+import static smetana.core.Macro.GD_label;
+import static smetana.core.Macro.GD_ln;
+import static smetana.core.Macro.GD_maxrank;
+import static smetana.core.Macro.GD_minrank;
+import static smetana.core.Macro.GD_n_cluster;
+import static smetana.core.Macro.GD_nlist;
+import static smetana.core.Macro.GD_nodesep;
+import static smetana.core.Macro.GD_rank;
+import static smetana.core.Macro.GD_ranksep;
+import static smetana.core.Macro.GD_rn;
+import static smetana.core.Macro.INT_MAX;
+import static smetana.core.Macro.MAX;
+import static smetana.core.Macro.MIN;
+import static smetana.core.Macro.N;
+import static smetana.core.Macro.ND_UF_size;
+import static smetana.core.Macro.ND_alg;
+import static smetana.core.Macro.ND_clust;
+import static smetana.core.Macro.ND_coord;
+import static smetana.core.Macro.ND_flat_out;
+import static smetana.core.Macro.ND_ht;
+import static smetana.core.Macro.ND_in;
+import static smetana.core.Macro.ND_inleaf;
+import static smetana.core.Macro.ND_lw;
+import static smetana.core.Macro.ND_mval;
+import static smetana.core.Macro.ND_next;
+import static smetana.core.Macro.ND_node_type;
+import static smetana.core.Macro.ND_order;
+import static smetana.core.Macro.ND_other;
+import static smetana.core.Macro.ND_out;
+import static smetana.core.Macro.ND_outleaf;
+import static smetana.core.Macro.ND_prev;
+import static smetana.core.Macro.ND_rank;
+import static smetana.core.Macro.ND_ranktype;
+import static smetana.core.Macro.ND_rw;
+import static smetana.core.Macro.ND_save_in;
+import static smetana.core.Macro.ND_save_out;
+import static smetana.core.Macro.NOT;
+import static smetana.core.Macro.ROUND;
+import static smetana.core.Macro.UNSUPPORTED;
+import static smetana.core.Macro.aghead;
+import static smetana.core.Macro.agtail;
+import static smetana.core.Macro.alloc_elist;
+import static smetana.core.Macro.free_list;
+import h.Agedge_s;
+import h.Agedgeinfo_t;
+import h.Agedgepair_s;
+import h.Agnode_s;
+import h.Agraph_s;
+import h.ST_pointf;
+import h.aspect_t;
+import h.boxf;
+import h.point;
+import h.pointf;
+import h.ratio_t;
+import smetana.core.CString;
+import smetana.core.JUtils;
+import smetana.core.Memory;
+import smetana.core.Z;
+import smetana.core.__ptr__;
+import smetana.core.__struct__;
+
+public class position__c {
+//1 2digov3edok6d5srhgtlmrycs
+// extern lt_symlist_t lt_preloaded_symbols[]
+
+
+//1 baedz5i9est5csw3epz3cv7z
+// typedef Ppoly_t Ppolyline_t
+
+
+//1 9k44uhd5foylaeoekf3llonjq
+// extern Dtmethod_t* Dtset
+
+
+//1 1ahfywsmzcpcig2oxm7pt9ihj
+// extern Dtmethod_t* Dtbag
+
+
+//1 anhghfj3k7dmkudy2n7rvt31v
+// extern Dtmethod_t* Dtoset
+
+
+//1 5l6oj1ux946zjwvir94ykejbc
+// extern Dtmethod_t* Dtobag
+
+
+//1 2wtf222ak6cui8cfjnw6w377z
+// extern Dtmethod_t* Dtlist
+
+
+//1 d1s1s6ibtcsmst88e3057u9r7
+// extern Dtmethod_t* Dtstack
+
+
+//1 axa7mflo824p6fspjn1rdk0mt
+// extern Dtmethod_t* Dtqueue
+
+
+//1 ega812utobm4xx9oa9w9ayij6
+// extern Dtmethod_t* Dtdeque
+
+
+//1 cyfr996ur43045jv1tjbelzmj
+// extern Dtmethod_t* Dtorder
+
+
+//1 wlofoiftbjgrrabzb2brkycg
+// extern Dtmethod_t* Dttree
+
+
+//1 12bds94t7voj7ulwpcvgf6agr
+// extern Dtmethod_t* Dthash
+
+
+//1 9lqknzty480cy7zsubmabkk8h
+// extern Dtmethod_t _Dttree
+
+
+//1 bvn6zkbcp8vjdhkccqo1xrkrb
+// extern Dtmethod_t _Dthash
+
+
+//1 9lidhtd6nsmmv3e7vjv9e10gw
+// extern Dtmethod_t _Dtlist
+
+
+//1 34ujfamjxo7xn89u90oh2k6f8
+// extern Dtmethod_t _Dtqueue
+
+
+//1 3jy4aceckzkdv950h89p4wjc8
+// extern Dtmethod_t _Dtstack
+
+
+//1 8dfqgf3u1v830qzcjqh9o8ha7
+// extern Agmemdisc_t AgMemDisc
+
+
+//1 18k2oh2t6llfsdc5x0wlcnby8
+// extern Agiddisc_t AgIdDisc
+
+
+//1 a4r7hi80gdxtsv4hdoqpyiivn
+// extern Agiodisc_t AgIoDisc
+
+
+//1 bnzt5syjb7mgeru19114vd6xx
+// extern Agdisc_t AgDefaultDisc
+
+
+//1 35y2gbegsdjilegaribes00mg
+// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected
+
+
+//1 c2rygslq6bcuka3awmvy2b3ow
+// typedef Agsubnode_t Agnoderef_t
+
+
+//1 xam6yv0dcsx57dtg44igpbzn
+// typedef Dtlink_t Agedgeref_t
+
+
+//1 nye6dsi1twkbddwo9iffca1j
+// extern char *Version
+
+
+//1 65mu6k7h7lb7bx14jpiw7iyxr
+// extern char **Files
+
+
+//1 2rpjdzsdyrvomf00zcs3u3dyn
+// extern const char **Lib
+
+
+//1 6d2f111lntd2rsdt4gswh5909
+// extern char *CmdName
+
+
+//1 a0ltq04fpeg83soa05a2fkwb2
+// extern char *specificFlags
+
+
+//1 1uv30qeqq2jh6uznlr4dziv0y
+// extern char *specificItems
+
+
+//1 7i4hkvngxe3x7lmg5h6b3t9g3
+// extern char *Gvfilepath
+
+
+//1 9jp96pa73kseya3w6sulxzok6
+// extern char *Gvimagepath
+
+
+//1 40ylumfu7mrvawwf4v2asvtwk
+// extern unsigned char Verbose
+
+
+//1 93st8awjy1z0h07n28qycbaka
+// extern unsigned char Reduce
+
+
+//1 f2vs67ts992erf8onwfglurzp
+// extern int MemTest
+
+
+//1 c6f8whijgjwwagjigmxlwz3gb
+// extern char *HTTPServerEnVar
+
+
+//1 cp4hzj7p87m7arw776d3bt7aj
+// extern char *Output_file_name
+
+
+//1 a3rqagofsgraie6mx0krzkgsy
+// extern int graphviz_errors
+
+
+//1 5up05203r4kxvjn1m4njcgq5x
+// extern int Nop
+
+
+//1 umig46cco431x14b3kosde2t
+// extern double PSinputscale
+
+
+//1 52bj6v8fqz39khasobljfukk9
+// extern int Syntax_errors
+
+
+//1 9ekf2ina8fsjj6y6i0an6somj
+// extern int Show_cnt
+
+
+//1 38di5qi3nkxkq65onyvconk3r
+// extern char** Show_boxes
+
+
+//1 6ri6iu712m8mpc7t2670etpcw
+// extern int CL_type
+
+
+//1 bomxiw3gy0cgd1ydqtek7fpxr
+// extern unsigned char Concentrate
+
+
+//1 cqy3gqgcq8empdrbnrhn84058
+// extern double Epsilon
+
+
+//1 64slegfoouqeg0rmbyjrm8wgr
+// extern int MaxIter
+
+
+//1 88wdinpnmfs4mab4aw62yb0bg
+// extern int Ndim
+
+
+//1 8bbad3ogcelqnnvo5br5s05gq
+// extern int State
+
+
+//1 17rnd8q45zclfn68qqst2vxxn
+// extern int EdgeLabelsDone
+
+
+//1 ymx1z4s8cznjifl2d9f9m8jr
+// extern double Initial_dist
+
+
+//1 a33bgl0c3uqb3trx419qulj1x
+// extern double Damping
+
+
+//1 d9lvrpjg1r0ojv40pod1xwk8n
+// extern int Y_invert
+
+
+//1 71efkfs77q5tq9ex6y0f4kanh
+// extern int GvExitOnUsage
+
+
+//1 4xy2dkdkv0acs2ue9eca8hh2e
+// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin
+
+
+//1 9js5gxgzr74eakgtfhnbws3t9
+// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle
+
+
+//1 anqllp9sj7wo45w6bm11j8trn
+// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth
+
+
+//1 bh0z9puipqw7gymjd5h5b8s6i
+// extern struct fdpParms_s* fdp_parms
+
+
+
+
+//3 ciez0pfggxdljedzsbklq49f0
+// static inline point pointof(int x, int y)
+public static Object pointof(Object... arg) {
+UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x;
+UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 c1s4k85p1cdfn176o3uryeros
+// static inline pointf pointfof(double x, double y)
+public static __struct__<pointf> pointfof(double x, double y) {
+// WARNING!! STRUCT
+return pointfof_w_(x, y).copy();
+}
+private static __struct__<pointf> pointfof_w_(double x, double y) {
+ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", x);
+ r.setDouble("y", y);
+ return r;
+} finally {
+LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof");
+}
+}
+
+
+
+
+//3 7cufnfitrh935ew093mw0i4b7
+// static inline box boxof(int llx, int lly, int urx, int ury)
+public static Object boxof(Object... arg) {
+UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly;
+UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury;
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 1vvsta5i8of59frav6uymguav
+// static inline boxf boxfof(double llx, double lly, double urx, double ury)
+public static __struct__<boxf> boxfof(double llx, double lly, double urx, double ury) {
+// WARNING!! STRUCT
+return boxfof_w_(llx, lly, urx, ury).copy();
+}
+private static __struct__<boxf> boxfof_w_(double llx, double lly, double urx, double ury) {
+ENTERING("1vvsta5i8of59frav6uymguav","boxfof");
+try {
+ final __struct__<boxf> b = JUtils.from(boxf.class);
+ b.getStruct("LL").setDouble("x", llx);
+ b.getStruct("LL").setDouble("y", lly);
+ b.getStruct("UR").setDouble("x", urx);
+ b.getStruct("UR").setDouble("y", ury);
+ return b;
+} finally {
+LEAVING("1vvsta5i8of59frav6uymguav","boxfof");
+}
+}
+
+
+
+
+//3 1n5xl70wxuabyf97mclvilsm6
+// static inline point add_point(point p, point q)
+public static Object add_point(Object... arg) {
+UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x;
+UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 arrsbik9b5tnfcbzsm8gr2chx
+// static inline pointf add_pointf(pointf p, pointf q)
+public static __struct__<pointf> add_pointf(final __struct__<pointf> p, final __struct__<pointf> q) {
+// WARNING!! STRUCT
+return add_pointf_w_(p.copy(), q.copy()).copy();
+}
+private static __struct__<pointf> add_pointf_w_(final __struct__<pointf> p, final __struct__<pointf> q) {
+ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", p.getDouble("x") + q.getDouble("x"));
+ r.setDouble("y", p.getDouble("y") + q.getDouble("y"));
+ return r;
+} finally {
+LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+}
+}
+
+
+
+
+//3 ai2dprak5y6obdsflguh5qbd7
+// static inline point sub_point(point p, point q)
+public static Object sub_point(Object... arg) {
+UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 16f6pyogcv3j7n2p0n8giqqgh
+// static inline pointf sub_pointf(pointf p, pointf q)
+public static Object sub_pointf(Object... arg) {
+UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9k50jgrhc4f9824vf8ony74rw
+// static inline point mid_point(point p, point q)
+public static Object mid_point(Object... arg) {
+UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2;
+UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 59c4f7im0ftyowhnzzq2v9o1x
+// static inline pointf mid_pointf(pointf p, pointf q)
+public static Object mid_pointf(Object... arg) {
+UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.;
+UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 5r18p38gisvcx3zsvbb9saixx
+// static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+public static Object interpolate_pointf(Object... arg) {
+UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r;
+UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x);
+UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y);
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bxzrv2ghq04qk5cbyy68s4mol
+// static inline point exch_xy(point p)
+public static Object exch_xy(Object... arg) {
+UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9lt3e03tac6h6sydljrcws8fd
+// static inline pointf exch_xyf(pointf p)
+public static Object exch_xyf(Object... arg) {
+UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8l9qhieokthntzdorlu5zn29b
+// static inline box box_bb(box b0, box b1)
+public static Object box_bb(Object... arg) {
+UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 clws9h3bbjm0lw3hexf8nl4c4
+// static inline boxf boxf_bb(boxf b0, boxf b1)
+public static Object boxf_bb(Object... arg) {
+UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bit6ycxo1iqd2al92y8gkzlvb
+// static inline box box_intersect(box b0, box b1)
+public static Object box_intersect(Object... arg) {
+UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8gfybie7k6pgb3o1a6llgpwng
+// static inline boxf boxf_intersect(boxf b0, boxf b1)
+public static Object boxf_intersect(Object... arg) {
+UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 7z8j2quq65govaaejrz7b4cvb
+// static inline int box_overlap(box b0, box b1)
+public static Object box_overlap(Object... arg) {
+UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4z0suuut2acsay5m8mg9dqjdu
+// static inline int boxf_overlap(boxf b0, boxf b1)
+public static Object boxf_overlap(Object... arg) {
+UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 dd34swz5rmdgu3a2np2a4h1dy
+// static inline int box_contains(box b0, box b1)
+public static Object box_contains(Object... arg) {
+UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8laj1bspbu2i1cjd9upr7xt32
+// static inline int boxf_contains(boxf b0, boxf b1)
+public static Object boxf_contains(Object... arg) {
+UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4wf5swkz24xx51ja2dynbycu1
+// static inline pointf perp (pointf p)
+public static Object perp(Object... arg) {
+UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6dtlpzv4mvgzb9o0b252yweuv
+// static inline pointf scale (double c, pointf p)
+public static Object scale(Object... arg) {
+UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x;
+UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6knxbdrmgk6294aw61s2lpvvf
+// static double largeMinlen (double l)
+public static double largeMinlen(double l) {
+ENTERING("6knxbdrmgk6294aw61s2lpvvf","largeMinlen");
+try {
+ UNSUPPORTED("lt6cippjix5bbvyhkcpl8g7g"); // static double
+UNSUPPORTED("e2f0xhw6om2fpgt48xyjjg3i"); // largeMinlen (double l)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("dad2o3vzemegi5fywxl7hcezk"); // agerr (AGERR, "Edge length %f larger than maximum %u allowed.\nCheck for overwide node(s).\n", l, USHRT_MAX);
+UNSUPPORTED("dlasv24dnuygpwagcamhyg15w"); // return (double)USHRT_MAX;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+} finally {
+LEAVING("6knxbdrmgk6294aw61s2lpvvf","largeMinlen");
+}
+}
+
+
+
+
+//3 ccowbxkwmrj75tojopmhcmubx
+// static void connectGraph (graph_t* g)
+public static void connectGraph(Agraph_s g) {
+ENTERING("ccowbxkwmrj75tojopmhcmubx","connectGraph");
+try {
+ int i, j, r, found;
+ Agnode_s tp;
+ Agnode_s hp;
+ Agnode_s sn;
+ Agedge_s e;
+ __ptr__ rp;
+ for (r = GD_minrank(g); r <= GD_maxrank(g); r++) {
+ rp = GD_rank(g).plus(r);
+ found =0;
+ tp = null;
+ for (i = 0; i < rp.getPtr().getInt("n"); i++) {
+ tp = (Agnode_s) rp.getPtr().getArrayOfPtr("v").plus(i).getPtr();
+ if (ND_save_out(tp).listNotNull()) {
+ for (j = 0; (e = (Agedge_s) ND_save_out(tp).getFromList(j))!=null; j++) {
+ if ((ND_rank(aghead(e)) > r) || (ND_rank(agtail(e)) > r)) {
+ found = 1;
+ break;
+ }
+ }
+ if (found!=0) break;
+ }
+ if (ND_save_in(tp).listNotNull()) {
+ for (j = 0; (e = (Agedge_s) ND_save_in(tp).getFromList(j))!=null; j++) {
+ if ((ND_rank(agtail(e)) > r) || (ND_rank(aghead(e)) > r)) {
+ found = 1;
+ break;
+ }
+ }
+ if (found!=0) break;
+ }
+ }
+ if (found!=0 || N(tp)) continue;
+ tp = (Agnode_s) rp.getPtr().getArrayOfPtr("v").plus(0).getPtr();
+ if (r < GD_maxrank(g)) hp = (Agnode_s) rp.plus(1).getPtr().getArrayOfPtr("v").plus(0).getPtr();
+ else hp = (Agnode_s) rp.plus(-1).getPtr().getArrayOfPtr("v").plus(0).getPtr();
+ //assert (hp);
+ sn = virtual_node(g);
+ ND_node_type(sn, 2);
+ make_aux_edge(sn, tp, 0, 0);
+ make_aux_edge(sn, hp, 0, 0);
+ ND_rank(sn, MIN(ND_rank(tp), ND_rank(hp)));
+ }
+} finally {
+LEAVING("ccowbxkwmrj75tojopmhcmubx","connectGraph");
+}
+}
+
+
+
+
+//3 33snzyd9z0loienur06dnily9
+// void dot_position(graph_t * g, aspect_t* asp)
+public static void dot_position(Agraph_s g, aspect_t asp) {
+ENTERING("33snzyd9z0loienur06dnily9","dot_position");
+try {
+ if (GD_nlist(g) == null)
+ return; /* ignore empty graph */
+ mark_lowclusters(g); /* we could remove from splines.c now */
+ set_ycoords(g);
+ if (Z.z().Concentrate)
+ dot_concentrate(g);
+ expand_leaves(g);
+ if (flat_edges(g)!=0)
+ set_ycoords(g);
+ create_aux_edges(g);
+ if (rank(g, 2, nsiter2(g))!=0) { /* LR balance == 2 */
+ connectGraph (g);
+ //assert(rank(g, 2, nsiter2(g)) == 0);
+ }
+ set_xcoords(g);
+ set_aspect(g, asp);
+ remove_aux_edges(g); /* must come after set_aspect since we now
+ * use GD_ln and GD_rn for bbox width.
+ */
+} finally {
+LEAVING("33snzyd9z0loienur06dnily9","dot_position");
+}
+}
+
+
+
+
+//3 90vn63m6v0w9fn9a2dgfxxx3h
+// static int nsiter2(graph_t * g)
+public static int nsiter2(Agraph_s g) {
+ENTERING("90vn63m6v0w9fn9a2dgfxxx3h","nsiter2");
+try {
+ int maxiter = INT_MAX;
+ CString s;
+ if ((s = agget(g, new CString("nslimit")))!=null)
+ maxiter = (int)(atof(s) * agnnodes(g));
+ return maxiter;
+} finally {
+LEAVING("90vn63m6v0w9fn9a2dgfxxx3h","nsiter2");
+}
+}
+
+
+
+
+//3 5bax8ut6nnk4pr7yxdumk9chl
+// static int go(node_t * u, node_t * v)
+public static boolean go(Agnode_s u, Agnode_s v) {
+ENTERING("5bax8ut6nnk4pr7yxdumk9chl","go");
+try {
+ int i;
+ Agedge_s e;
+ if (EQ(u, v))
+ return NOT(false);
+ for (i = 0; (e = (Agedge_s) ND_out(u).getFromList(i))!=null; i++) {
+ if (go(aghead(e), v))
+ return NOT(false);
+ }
+ return false;
+} finally {
+LEAVING("5bax8ut6nnk4pr7yxdumk9chl","go");
+}
+}
+
+
+
+
+//3 9xz8numztzj4qsq85pziahv1k
+// static int canreach(node_t * u, node_t * v)
+public static boolean canreach(Agnode_s u, Agnode_s v) {
+ENTERING("9xz8numztzj4qsq85pziahv1k","canreach");
+try {
+ return go(u, v);
+} finally {
+LEAVING("9xz8numztzj4qsq85pziahv1k","canreach");
+}
+}
+
+
+
+
+//3 4cvgiatny97ou6mhqoq6aqwek
+// edge_t *make_aux_edge(node_t * u, node_t * v, double len, int wt)
+public static Agedge_s make_aux_edge(Agnode_s u, Agnode_s v, double len, int wt) {
+ENTERING("4cvgiatny97ou6mhqoq6aqwek","make_aux_edge");
+try {
+ Agedge_s e;
+ Agedgepair_s e2 = (Agedgepair_s) zmalloc(sizeof(Agedgepair_s.class));
+ AGTYPE(e2.getStruct("in").amp(), AGINEDGE);
+ AGTYPE(e2.getStruct("out").amp(), AGOUTEDGE);
+ e2.getStruct("out").getStruct("base").setPtr("data", zmalloc(sizeof(Agedgeinfo_t.class)));
+ e = (Agedge_s) e2.getStruct("out").amp();
+ agtail(e, u);
+ aghead(e, v);
+ if (len > USHRT_MAX)
+ len = largeMinlen (len);
+ ED_minlen(e, ROUND(len));
+ ED_weight(e, wt);
+ fast_edge(e);
+ return e;
+} finally {
+LEAVING("4cvgiatny97ou6mhqoq6aqwek","make_aux_edge");
+}
+}
+
+
+
+
+//3 53fvij7oun7aezlb7x66vzuyb
+// static void allocate_aux_edges(graph_t * g)
+public static void allocate_aux_edges(Agraph_s g) {
+ENTERING("53fvij7oun7aezlb7x66vzuyb","allocate_aux_edges");
+try {
+ int i, j, n_in;
+ Agnode_s n;
+ /* allocate space for aux edge lists */
+ for (n = GD_nlist(g); n!=null; n = ND_next(n)) {
+ ND_save_in(n, ND_in(n));
+ ND_save_out(n, ND_out(n));
+ for (i = 0; ND_out(n).getFromList(i)!=null; i++);
+ for (j = 0; ND_in(n).getFromList(j)!=null; j++);
+ n_in = i + j;
+ alloc_elist(n_in + 3, ND_in(n), Agnode_s.class);
+ alloc_elist(3, ND_out(n), Agnode_s.class);
+ }
+} finally {
+LEAVING("53fvij7oun7aezlb7x66vzuyb","allocate_aux_edges");
+}
+}
+
+
+
+
+//3 ah28nr6mxpjeosr85bhmzd3si
+// static void make_LR_constraints(graph_t * g)
+public static void make_LR_constraints(Agraph_s g) {
+ENTERING("ah28nr6mxpjeosr85bhmzd3si","make_LR_constraints");
+try {
+ int i, j, k;
+ int sw; /* self width */
+ int m0, m1;
+ double width;
+ int sep[] = new int[2];
+ int nodesep; /* separation between nodes on same rank */
+ Agedge_s e, e0, e1, ff;
+ Agnode_s u, v, t0, h0;
+ __ptr__ rank = GD_rank(g);
+ /* Use smaller separation on odd ranks if g has edge labels */
+ if ((GD_has_labels(g) & (1 << 0))!=0) {
+ sep[0] = GD_nodesep(g);
+ sep[1] = 5;
+ }
+ else {
+ sep[1] = sep[0] = GD_nodesep(g);
+ }
+ /* make edges to constrain left-to-right ordering */
+ for (i = GD_minrank(g); i <= GD_maxrank(g); i++) {
+ double last;
+ ND_rank(rank.plus(i).getArrayOfPtr("v").plus(0).getPtr(), 0);
+ last = 0;
+ nodesep = sep[i & 1];
+ for (j = 0; j < rank.plus(i).getInt("n"); j++) {
+ u = (Agnode_s) rank.plus(i).getArrayOfPtr("v").plus(j).getPtr();
+ ND_mval(u, ND_rw(u)); /* keep it somewhere safe */
+ if (ND_other(u).size > 0) { /* compute self size */
+ /* FIX: dot assumes all self-edges go to the right. This
+ * is no longer true, though makeSelfEdge still attempts to
+ * put as many as reasonable on the right. The dot code
+ * should be modified to allow a box reflecting the placement
+ * of all self-edges, and use that to reposition the nodes.
+ * Note that this would not only affect left and right
+ * positioning but may also affect interrank spacing.
+ */
+ sw = 0;
+ for (k = 0; (e = (Agedge_s) ND_other(u).getFromList(k))!=null; k++) {
+ if (EQ(agtail(e), aghead(e))) {
+ sw += selfRightSpace (e);
+ }
+ }
+ ND_rw(u, ND_rw(u) + sw); /* increment to include self edges */
+ }
+ v = (Agnode_s) rank.plus(i).getArrayOfPtr("v").plus(j + 1).getPtr();
+ if (v!=null) {
+ width = ND_rw(u) + ND_lw(v) + nodesep;
+ e0 = make_aux_edge(u, v, width, 0);
+ ND_rank(v, (int)(last + width));
+ last = (int)(last + width);
+ }
+ /* constraints from labels of flat edges on previous rank */
+ if ((e = (Agedge_s) ND_alg(u))!=null) {
+ e0 = (Agedge_s) ND_save_out(u).getFromList(0);
+ e1 = (Agedge_s) ND_save_out(u).getFromList(1);
+ if (ND_order(aghead(e0)) > ND_order(aghead(e1))) {
+ ff = e0;
+ e0 = e1;
+ e1 = ff;
+ }
+ m0 = (ED_minlen(e) * GD_nodesep(g)) / 2;
+ m1 = m0 + ((int)(ND_rw(aghead(e0)) + ND_lw(agtail(e0))));
+ /* these guards are needed because the flat edges
+ * work very poorly with cluster layout */
+ if (canreach(agtail(e0), aghead(e0)) == false)
+ make_aux_edge(aghead(e0), agtail(e0), m1,
+ ED_weight(e));
+ m1 = m0 + ((int)(ND_rw(agtail(e1)) + ND_lw(aghead(e1))));
+ if (canreach(aghead(e1), agtail(e1)) == false)
+ make_aux_edge(agtail(e1), aghead(e1), m1,
+ ED_weight(e));
+ }
+ /* position flat edge endpoints */
+ for (k = 0; k < ND_flat_out(u).size; k++) {
+ e = (Agedge_s) ND_flat_out(u).getFromList(k);
+ if (ND_order(agtail(e)) < ND_order(aghead(e))) {
+ t0 = agtail(e);
+ h0 = aghead(e);
+ } else {
+ t0 = aghead(e);
+ h0 = agtail(e);
+ }
+ width = ND_rw(t0) + ND_lw(h0);
+ m0 = (int) (ED_minlen(e) * GD_nodesep(g) + width);
+ if ((e0 = find_fast_edge(t0, h0))!=null) {
+ /* flat edge between adjacent neighbors
+ * ED_dist contains the largest label width.
+ */
+ m0 = MAX(m0, (int)(width + GD_nodesep(g) + ROUND(ED_dist(e))));
+ if (m0 > USHRT_MAX)
+ m0 = (int) largeMinlen (m0);
+ ED_minlen(e0, MAX(ED_minlen(e0), m0));
+ ED_weight(e0, MAX(ED_weight(e0), ED_weight(e)));
+ }
+ else if (N(ED_label(e))) {
+ /* unlabeled flat edge between non-neighbors
+ * ED_minlen(e) is max of ED_minlen of all equivalent
+ * edges.
+ */
+ make_aux_edge(t0, h0, m0, ED_weight(e));
+ }
+ /* labeled flat edges between non-neighbors have already
+ * been constrained by the label above.
+ */
+ }
+ }
+ }
+} finally {
+LEAVING("ah28nr6mxpjeosr85bhmzd3si","make_LR_constraints");
+}
+}
+
+
+
+
+//3 6uruo8mutxgcni9fm8jcrw4cr
+// static void make_edge_pairs(graph_t * g)
+public static void make_edge_pairs(Agraph_s g) {
+ENTERING("6uruo8mutxgcni9fm8jcrw4cr","make_edge_pairs");
+try {
+ int i, m0, m1;
+ Agnode_s n, sn;
+ Agedge_s e;
+ for (n = GD_nlist(g); n!=null; n = ND_next(n)) {
+ if (ND_save_out(n).listNotNull())
+ for (i = 0; (e = (Agedge_s) ND_save_out(n).getFromList(i))!=null; i++) {
+ sn = virtual_node(g);
+ ND_node_type(sn, 2);
+ m0 = (int)(ED_head_port(e).p.x - ED_tail_port(e).p.x);
+ if (m0 > 0)
+ m1 = 0;
+ else {
+ m1 = -m0;
+ m0 = 0;
+ }
+ make_aux_edge(sn, agtail(e), m0 + 1, ED_weight(e));
+ make_aux_edge(sn, aghead(e), m1 + 1, ED_weight(e));
+ ND_rank(sn,
+ MIN(ND_rank(agtail(e)) - m0 - 1,
+ ND_rank(aghead(e)) - m1 - 1));
+ }
+ }
+} finally {
+LEAVING("6uruo8mutxgcni9fm8jcrw4cr","make_edge_pairs");
+}
+}
+
+
+
+
+//3 79v3omwzni0nm3h05l3onjsbz
+// static void contain_clustnodes(graph_t * g)
+public static void contain_clustnodes(Agraph_s g) {
+ENTERING("79v3omwzni0nm3h05l3onjsbz","contain_clustnodes");
+try {
+ int c;
+ Agedge_s e;
+ if (NEQ(g, dot_root(g))) {
+ contain_nodes(g);
+ if ((e = find_fast_edge(GD_ln(g),GD_rn(g)))!=null) /* maybe from lrvn()?*/
+ ED_weight(e, ED_weight(e) + 128);
+ else
+ make_aux_edge(GD_ln(g), GD_rn(g), 1, 128); /* clust compaction edge */
+ }
+ for (c = 1; c <= GD_n_cluster(g); c++)
+ contain_clustnodes((Agraph_s) GD_clust(g).plus(c).getPtr());
+} finally {
+LEAVING("79v3omwzni0nm3h05l3onjsbz","contain_clustnodes");
+}
+}
+
+
+
+
+//3 24yfgklubun581fbfyx62lzsm
+// static int vnode_not_related_to(graph_t * g, node_t * v)
+public static boolean vnode_not_related_to(Agraph_s g, Agnode_s v) {
+ENTERING("24yfgklubun581fbfyx62lzsm","vnode_not_related_to");
+try {
+ Agedge_s e;
+ if (ND_node_type(v) != 1)
+ return false;
+ for (e = (Agedge_s) ND_save_out(v).getFromList(0); ED_to_orig(e)!=null; e = ED_to_orig(e));
+ if (agcontains(g, agtail(e)))
+ return false;
+ if (agcontains(g, aghead(e)))
+ return false;
+ return NOT(false);
+} finally {
+LEAVING("24yfgklubun581fbfyx62lzsm","vnode_not_related_to");
+}
+}
+
+
+
+
+//3 73cdgjl47ohty2va766evbo4
+// static void keepout_othernodes(graph_t * g)
+public static void keepout_othernodes(Agraph_s g) {
+ENTERING("73cdgjl47ohty2va766evbo4","keepout_othernodes");
+try {
+ int i, c, r, margin;
+ Agnode_s u, v;
+ margin = late_int (g, Z.z().G_margin, 8, 0);
+ for (r = GD_minrank(g); r <= GD_maxrank(g); r++) {
+ if (GD_rank(g).plus(r).getInt("n") == 0)
+ continue;
+ v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(0).getPtr();
+ if (v == null)
+ continue;
+ for (i = ND_order(v) - 1; i >= 0; i--) {
+ u = (Agnode_s) GD_rank(dot_root(g)).plus(r).getArrayOfPtr("v").plus(i).getPtr();
+ /* can't use "is_a_vnode_of" because elists are swapped */
+ if ((ND_node_type(u) == 0) || vnode_not_related_to(g, u)) {
+ make_aux_edge(u, GD_ln(g), margin + ND_rw(u), 0);
+ break;
+ }
+ }
+ for (i = ND_order(v) + GD_rank(g).plus(r).getInt("n"); i < GD_rank(dot_root(g)).plus(r).getInt("n");
+ i++) {
+ u = (Agnode_s) GD_rank(dot_root(g)).plus(r).getArrayOfPtr("v").plus(i).getPtr();
+ if ((ND_node_type(u) == 0) || vnode_not_related_to(g, u)) {
+ make_aux_edge(GD_rn(g), u, margin + ND_lw(u), 0);
+ break;
+ }
+ }
+ }
+ for (c = 1; c <= GD_n_cluster(g); c++)
+ keepout_othernodes((Agraph_s) GD_clust(g).plus(c).getPtr());
+} finally {
+LEAVING("73cdgjl47ohty2va766evbo4","keepout_othernodes");
+}
+}
+
+
+
+
+//3 c734mx1638sfqtl7vh7itaxyx
+// static void contain_subclust(graph_t * g)
+public static void contain_subclust(Agraph_s g) {
+ENTERING("c734mx1638sfqtl7vh7itaxyx","contain_subclust");
+try {
+ int margin, c;
+ Agraph_s subg;
+ margin = late_int (g, Z.z().G_margin, 8, 0);
+ make_lrvn(g);
+ for (c = 1; c <= GD_n_cluster(g); c++) {
+ subg = (Agraph_s) GD_clust(g).plus(c).getPtr();
+ make_lrvn(subg);
+ make_aux_edge(GD_ln(g), GD_ln(subg),
+ margin + GD_border(g).plus(3).getStruct().getDouble("x"), 0);
+ make_aux_edge(GD_rn(subg), GD_rn(g),
+ margin + GD_border(g).plus(1).getStruct().getDouble("x"), 0);
+ contain_subclust(subg);
+ }
+} finally {
+LEAVING("c734mx1638sfqtl7vh7itaxyx","contain_subclust");
+}
+}
+
+
+
+
+//3 6oruu1p1b7kxr5moh3kmcmvr3
+// static void separate_subclust(graph_t * g)
+public static void separate_subclust(Agraph_s g) {
+ENTERING("6oruu1p1b7kxr5moh3kmcmvr3","separate_subclust");
+try {
+ int i, j, margin;
+ Agraph_s low, high;
+ Agraph_s left, right;
+ margin = late_int (g, Z.z().G_margin, 8, 0);
+ for (i = 1; i <= GD_n_cluster(g); i++)
+ make_lrvn((Agraph_s) GD_clust(g).plus(i).getPtr());
+ for (i = 1; i <= GD_n_cluster(g); i++) {
+ for (j = i + 1; j <= GD_n_cluster(g); j++) {
+ low = (Agraph_s) GD_clust(g).plus(i).getPtr();
+ high = (Agraph_s) GD_clust(g).plus(j).getPtr();
+ if (GD_minrank(low) > GD_minrank(high)) {
+ Agraph_s temp = low;
+ low = high;
+ high = temp;
+ }
+ if (GD_maxrank(low) < GD_minrank(high))
+ continue;
+ if (ND_order(GD_rank(low).plus(GD_minrank(high)).getPtr("v").plus(0).getPtr())
+ < ND_order(GD_rank(high).plus(GD_minrank(high)).getPtr("v").plus(0).getPtr())) {
+ left = low;
+ right = high;
+ } else {
+ left = high;
+ right = low;
+ }
+ make_aux_edge(GD_rn(left), GD_ln(right), margin, 0);
+ }
+ separate_subclust((Agraph_s) GD_clust(g).plus(i).getPtr());
+ }
+} finally {
+LEAVING("6oruu1p1b7kxr5moh3kmcmvr3","separate_subclust");
+}
+}
+
+
+
+
+//3 8f8gs2zivo4pnd3hmtb9g23x4
+// static void pos_clusters(graph_t * g)
+public static void pos_clusters(Agraph_s g) {
+ENTERING("8f8gs2zivo4pnd3hmtb9g23x4","pos_clusters");
+try {
+ if (GD_n_cluster(g) > 0) {
+ contain_clustnodes(g);
+ keepout_othernodes(g);
+ contain_subclust(g);
+ separate_subclust(g);
+ }
+} finally {
+LEAVING("8f8gs2zivo4pnd3hmtb9g23x4","pos_clusters");
+}
+}
+
+
+
+
+//3 fywsxto7yvl5wa2dfu7u7jj1
+// static void compress_graph(graph_t * g)
+public static void compress_graph(Agraph_s g) {
+ENTERING("fywsxto7yvl5wa2dfu7u7jj1","compress_graph");
+try {
+ double x;
+ pointf p = (pointf) Memory.malloc(pointf.class);
+ if (GD_drawing(g).getInt("ratio_kind") != enumAsInt(ratio_t.class, "R_COMPRESS"))
+ return;
+UNSUPPORTED("79oeaf0u32si2chjcpas5whjl"); // p = GD_drawing(g)->size;
+UNSUPPORTED("6a2ue1i6kvwvpgapb4z8l27jn"); // if (p.x * p.y <= 1)
+UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return;
+UNSUPPORTED("5f3k9yz6btwxc8r5t8exytqqt"); // contain_nodes(g);
+UNSUPPORTED("4mvbrmj6dfhaz3burnpac7zsx"); // if (GD_flip(g) == 0)
+UNSUPPORTED("dzkztznjq2andjnjzqh8i5tij"); // x = p.x;
+UNSUPPORTED("div10atae09n36x269sl208r1"); // else
+UNSUPPORTED("ddzjdkqij3y4gq9i3hikpoqvj"); // x = p.y;
+UNSUPPORTED("e1xij2jh66kyaiikenemo1qza"); // /* Guard against huge size attribute since max. edge length is USHRT_MAX
+UNSUPPORTED("5ilmnsqirjhzn5q6s3f9pkgi3"); // * A warning might be called for. Also, one could check that the graph
+UNSUPPORTED("1nhxkt9jijvhw5gsp2pluh8g8"); // * already fits GD_drawing(g)->size and return immediately.
+UNSUPPORTED("795vpnc8yojryr8b46aidsu69"); // */
+UNSUPPORTED("dkqac1chvtsaao23vr43xqs5r"); // x = MIN(x,USHRT_MAX);
+UNSUPPORTED("5es2j3xrdatvha5uea2wlqcxp"); // make_aux_edge(GD_ln(g), GD_rn(g), x, 1000);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+} finally {
+LEAVING("fywsxto7yvl5wa2dfu7u7jj1","compress_graph");
+}
+}
+
+
+
+
+//3 b7y0htx4svbhaqb1a12dihlue
+// static void create_aux_edges(graph_t * g)
+public static void create_aux_edges(Agraph_s g) {
+ENTERING("b7y0htx4svbhaqb1a12dihlue","create_aux_edges");
+try {
+ allocate_aux_edges(g);
+ make_LR_constraints(g);
+ make_edge_pairs(g);
+ pos_clusters(g);
+ compress_graph(g);
+} finally {
+LEAVING("b7y0htx4svbhaqb1a12dihlue","create_aux_edges");
+}
+}
+
+
+
+
+//3 euzeilq92ry8a4tcrij5s52t5
+// static void remove_aux_edges(graph_t * g)
+public static void remove_aux_edges(Agraph_s g) {
+ENTERING("euzeilq92ry8a4tcrij5s52t5","remove_aux_edges");
+try {
+ int i;
+ Agnode_s n, nnext, nprev;
+ Agedge_s e;
+ for (n = GD_nlist(g); n!=null; n = ND_next(n)) {
+ for (i = 0; (e = (Agedge_s) ND_out(n).getFromList(i))!=null; i++) {
+ Memory.free(e.getStruct("base").getPtr("data"));
+ Memory.free(e);
+ }
+ free_list(ND_out(n));
+ free_list(ND_in(n));
+ ND_out(n, ND_save_out(n));
+ ND_in(n, ND_save_in(n));
+ }
+ /* cannot be merged with previous loop */
+ nprev = null;
+ for (n = GD_nlist(g); n!=null; n = nnext) {
+ nnext = ND_next(n);
+ if (ND_node_type(n) == 2) {
+ if (nprev!=null)
+ ND_next(nprev, nnext);
+ else
+ GD_nlist(g, nnext);
+ Memory.free(n.getStruct("base").getPtr("data"));
+ Memory.free(n);
+ } else
+ nprev = n;
+ }
+ ND_prev(GD_nlist(g), null);
+} finally {
+LEAVING("euzeilq92ry8a4tcrij5s52t5","remove_aux_edges");
+}
+}
+
+
+
+
+//3 1oobmglea9t819y95xeel37h8
+// static void set_xcoords(graph_t * g)
+public static void set_xcoords(Agraph_s g) {
+ENTERING("1oobmglea9t819y95xeel37h8","set_xcoords");
+try {
+ int i, j;
+ Agnode_s v;
+ __ptr__ rank = GD_rank(g);
+ for (i = GD_minrank(g); i <= GD_maxrank(g); i++) {
+ for (j = 0; j < rank.plus(i).getInt("n"); j++) {
+ v = (Agnode_s) rank.plus(i).getArrayOfPtr("v").plus(j).getPtr();
+ ND_coord(v).x = ND_rank(v);
+ ND_rank(v, i);
+ }
+ }
+} finally {
+LEAVING("1oobmglea9t819y95xeel37h8","set_xcoords");
+}
+}
+
+
+
+
+//3 6mip7s1k9xt9tp6x6nnsbt34p
+// static void adjustSimple(graph_t * g, int delta, int margin_total)
+public static Object adjustSimple(Object... arg) {
+UNSUPPORTED("6b5zs45snahyh3bzod53vasjx"); // static void adjustSimple(graph_t * g, int delta, int margin_total)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("4dxxcgj8emjoyp2vlrcw5xmwl"); // int r, bottom, deltop, delbottom;
+UNSUPPORTED("6i5o0pm41tgebv48wcngsxwqd"); // graph_t *root = dot_root(g);
+UNSUPPORTED("2clvms28da6dp56nhcz1fw6l8"); // rank_t *rank = GD_rank(root);
+UNSUPPORTED("3fkjf35jwcy291suh6fv3lnu"); // int maxr = GD_maxrank(g);
+UNSUPPORTED("be5w8b0upg8swanznmjl6ml56"); // int minr = GD_minrank(g);
+UNSUPPORTED("enzyy8zeeg6bsgsuwm86u5bwb"); // bottom = (delta+1) / 2;
+UNSUPPORTED("9jp6b6z7el15spss761fh4rgx"); // delbottom = GD_ht1(g) + bottom - (rank[maxr].ht1 - margin_total);
+UNSUPPORTED("ckra1b9nceo8q21bwo5iu3rap"); // if (delbottom > 0) {
+UNSUPPORTED("3jotxrk6oermksl3is78mj0e2"); // for (r = maxr; r >= minr; r--) {
+UNSUPPORTED("b905w55w58349wk9aktevaljm"); // if (rank[r].n > 0)
+UNSUPPORTED("bjuzvkc8hhlni54hkaef0j0xa"); // ND_coord(rank[r].v[0]).y += delbottom;
+UNSUPPORTED("e9yhkch195gia8gdiu6vb4rbn"); // }
+UNSUPPORTED("bdmop8bk7tvltc7z16xj07kqn"); // deltop = GD_ht2(g) + (delta-bottom) + delbottom - (rank[minr].ht2 - margin_total);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("div10atae09n36x269sl208r1"); // else
+UNSUPPORTED("cw3vv20i8np95bafexnuhhpdg"); // deltop = GD_ht2(g) + (delta-bottom) - (rank[minr].ht2 - margin_total);
+UNSUPPORTED("49prm57gvpenehfkcxz9xuxu4"); // if (deltop > 0) {
+UNSUPPORTED("axexjgvfow9k3x1l6j2my6cd"); // for (r = minr-1; r >= GD_minrank(root); r--) {
+UNSUPPORTED("b905w55w58349wk9aktevaljm"); // if (rank[r].n > 0)
+UNSUPPORTED("1nebaz06hwqknqrqcnwf03z2"); // ND_coord(rank[r].v[0]).y += deltop;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("7o49wizb9vp55xhz88lycavep"); // GD_ht2(g) += (delta - bottom);
+UNSUPPORTED("4mq1sot7a9bxpobj9602hyyl5"); // GD_ht1(g) += bottom;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9sv968rni5moio662r9kjzai3
+// static void adjustRanks(graph_t * g, int margin_total)
+public static Object adjustRanks(Object... arg) {
+UNSUPPORTED("47ywar141vmwjartmboxs38cz"); // static void adjustRanks(graph_t * g, int margin_total)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cbyzaxb8pmtp6lo2y4tajk45s"); // double lht; /* label height */
+UNSUPPORTED("3r7yt838qvvliagprkv30uka1"); // double rht; /* height between top and bottom ranks */
+UNSUPPORTED("n5e6qzpiyv4zvlemheyvbky7"); // int maxr, minr, margin;
+UNSUPPORTED("53xzwretgdbd0atozc0w6hagb"); // int c;
+UNSUPPORTED("7p11k11wgq46szos3u4lfa5a4"); // double delta, ht1, ht2;
+UNSUPPORTED("39w5issxrjmte1dn2qnt8gpbj"); // rank_t *rank = GD_rank(dot_root(g));
+UNSUPPORTED("aerooskq9gwysw6euktdqjmaq"); // if (g == dot_root(g))
+UNSUPPORTED("8tm7x791luf0uq7v2q53kfuqk"); // margin = 0;
+UNSUPPORTED("div10atae09n36x269sl208r1"); // else
+UNSUPPORTED("182pb9igel0aoytgtoiguek4x"); // margin = late_int (g, G_margin, 8, 0);
+UNSUPPORTED("8bcey7cvczgf3t3ominh7ye1b"); // ht1 = GD_ht1(g);
+UNSUPPORTED("1ac5605x86vam4z4spx361rpd"); // ht2 = GD_ht2(g);
+UNSUPPORTED("99d9j6m0161wdv2tu4wbf3ifi"); // for (c = 1; c <= GD_n_cluster(g); c++) {
+UNSUPPORTED("6wacplh886lzcey0jjkfo5jcn"); // graph_t *subg = GD_clust(g)[c];
+UNSUPPORTED("6jkyxr322md2frf0pic57ak6e"); // adjustRanks(subg, margin+margin_total);
+UNSUPPORTED("41b09kckthwa070wznf9tneej"); // if (GD_maxrank(subg) == GD_maxrank(g))
+UNSUPPORTED("7gbj2fwymn5k7pywbjc1kbhmb"); // ht1 = MAX(ht1, GD_ht1(subg) + margin);
+UNSUPPORTED("clsf4pg9bdlkzghw3oq7fpo7c"); // if (GD_minrank(subg) == GD_minrank(g))
+UNSUPPORTED("9vmpt65t8kavsz1zoorcr5ik"); // ht2 = MAX(ht2, GD_ht2(subg) + margin);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("9lx88c3pk4z5zxca5orq7v2yf"); // GD_ht1(g) = ht1;
+UNSUPPORTED("2p0gs3kpty9mg9ymk70kjekh0"); // GD_ht2(g) = ht2;
+UNSUPPORTED("34p29mvxtmpuzcgzh4s03lixs"); // if ((g != dot_root(g)) && GD_label(g)) {
+UNSUPPORTED("ak9x1j2bu2d8zr8tls942u42r"); // lht = MAX(GD_border(g)[3].y, GD_border(g)[1].y);
+UNSUPPORTED("ehkev01oc7ynzwkbjbzclaqj6"); // maxr = GD_maxrank(g);
+UNSUPPORTED("2906nnve3dmqroo2jsq13wfex"); // minr = GD_minrank(g);
+UNSUPPORTED("8s9tksg226ob1ti8o5ljo1gbg"); // rht = ND_coord(rank[minr].v[0]).y - ND_coord(rank[maxr].v[0]).y;
+UNSUPPORTED("b0dxtg7jama7mgqccujsbb97n"); // delta = lht - (rht + ht1 + ht2);
+UNSUPPORTED("bfapr2l9berlmq4ubgk0zp7qf"); // if (delta > 0) {
+UNSUPPORTED("3zllny0pp0nf7gzw7829oqexo"); // adjustSimple(g, delta, margin_total);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("a86aoq62oyhhkqpyzz0um3pvq"); // /* update the global ranks */
+UNSUPPORTED("1pmq9pca155672xcv1ow2cbfy"); // if (g != dot_root(g)) {
+UNSUPPORTED("1kgp3b6qifeit9n2i2k8oc8qv"); // rank[GD_minrank(g)].ht2 = MAX(rank[GD_minrank(g)].ht2, GD_ht2(g));
+UNSUPPORTED("8f7gccnlt6m8v3k1ijaznaew3"); // rank[GD_maxrank(g)].ht1 = MAX(rank[GD_maxrank(g)].ht1, GD_ht1(g));
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 emtrqv582hdma5aajqtjd76m1
+// static int clust_ht(Agraph_t * g)
+public static int clust_ht(Agraph_s g) {
+ENTERING("emtrqv582hdma5aajqtjd76m1","clust_ht");
+try {
+ int c;
+ double ht1, ht2;
+ Agraph_s subg;
+ __ptr__ rank = GD_rank(dot_root(g));
+ int margin, haveClustLabel = 0;
+ if (EQ(g, dot_root(g)))
+ margin = 8;
+ else
+ margin = late_int (g, Z.z().G_margin, 8, 0);
+ ht1 = GD_ht1(g);
+ ht2 = GD_ht2(g);
+ /* account for sub-clusters */
+ for (c = 1; c <= GD_n_cluster(g); c++) {
+ subg = (Agraph_s) GD_clust(g).plus(c).getPtr();
+ haveClustLabel |= clust_ht(subg);
+ if (GD_maxrank(subg) == GD_maxrank(g))
+ ht1 = MAX(ht1, GD_ht1(subg) + margin);
+ if (GD_minrank(subg) == GD_minrank(g))
+ ht2 = MAX(ht2, GD_ht2(subg) + margin);
+ }
+ /* account for a possible cluster label in clusters */
+ /* room for root graph label is handled in dotneato_postprocess */
+ if (NEQ(g, dot_root(g)) && GD_label(g)!=null) {
+ haveClustLabel = 1;
+ if (N(GD_flip(agroot(g)))) {
+ ht1 += GD_border(g).plus(0).getDouble("y");
+ ht2 += GD_border(g).plus(2).getDouble("y");
+ }
+ }
+ GD_ht1(g, ht1);
+ GD_ht2(g, ht2);
+ /* update the global ranks */
+ if (NEQ(g, dot_root(g))) {
+ rank.plus(GD_minrank(g)).setDouble("ht2", MAX(rank.plus(GD_minrank(g)).getDouble("ht2"), ht2));
+ rank.plus(GD_maxrank(g)).setDouble("ht1", MAX(rank.plus(GD_maxrank(g)).getDouble("ht1"), ht1));
+ }
+ return haveClustLabel;
+} finally {
+LEAVING("emtrqv582hdma5aajqtjd76m1","clust_ht");
+}
+}
+
+
+
+
+//3 bp8vmol4ncadervcfossysdtd
+// static void set_ycoords(graph_t * g)
+public static void set_ycoords(Agraph_s g) {
+ENTERING("bp8vmol4ncadervcfossysdtd","set_ycoords");
+try {
+ int i, j, r;
+ double ht2, maxht, delta, d0, d1;
+ Agnode_s n;
+ Agedge_s e;
+ __ptr__ rank = GD_rank(g);
+ Agraph_s clust;
+ int lbl;
+ ht2 = maxht = 0;
+ /* scan ranks for tallest nodes. */
+ for (r = GD_minrank(g); r <= GD_maxrank(g); r++) {
+ for (i = 0; i < rank.plus(r).getInt("n"); i++) {
+ n = (Agnode_s) rank.plus(r).getArrayOfPtr("v").plus(i).getPtr();
+ /* assumes symmetry, ht1 = ht2 */
+ ht2 = ND_ht(n) / 2;
+ /* have to look for high self-edge labels, too */
+ if (ND_other(n).listNotNull())
+ for (j = 0; (e = (Agedge_s) ND_other(n).getFromList(j))!=null; j++) {
+ if (EQ(agtail(e), aghead(e))) {
+ if (ED_label(e)!=null)
+ ht2 = MAX(ht2, ED_label(e).getStruct("dimen").getDouble("y") / 2);
+ }
+ }
+ /* update global rank ht */
+ if (rank.plus(r).getDouble("pht2") < ht2) {
+ rank.plus(r).setDouble("ht2", ht2);
+ rank.plus(r).setDouble("pht2", ht2);
+ }
+ if (rank.plus(r).getDouble("pht1") < ht2) {
+ rank.plus(r).setDouble("ht1", ht2);
+ rank.plus(r).setDouble("pht1", ht2);
+ }
+ /* update nearest enclosing cluster rank ht */
+ if ((clust = ND_clust(n))!=null) {
+ int yoff = (clust == g ? 0 : late_int (clust, Z.z().G_margin, 8, 0));
+ if (ND_rank(n) == GD_minrank(clust))
+ GD_ht2(clust, MAX(GD_ht2(clust), ht2 + yoff));
+ if (ND_rank(n) == GD_maxrank(clust))
+ GD_ht1(clust, MAX(GD_ht1(clust), ht2 + yoff));
+ }
+ }
+ }
+ /* scan sub-clusters */
+ lbl = clust_ht(g);
+ /* make the initial assignment of ycoords to leftmost nodes by ranks */
+ maxht = 0;
+ r = GD_maxrank(g);
+ (ND_coord(rank.plus(r).getArrayOfPtr("v").plus(0).getPtr())).setDouble("y", rank.plus(r).getDouble("ht1"));
+ while (--r >= GD_minrank(g)) {
+ d0 = rank.plus(r + 1).getDouble("pht2") + rank.plus(r).getDouble("pht1") + GD_ranksep(g); /* prim node sep */
+ d1 = rank.plus(r + 1).getDouble("ht2") + rank.plus(r).getDouble("ht1") + 8; /* cluster sep */
+ delta = MAX(d0, d1);
+ if (rank.plus(r).getInt("n") > 0) /* this may reflect some problem */
+ (ND_coord(rank.plus(r).getArrayOfPtr("v").plus(0).getPtr())).setDouble("y", (ND_coord(rank.plus(r + 1).getArrayOfPtr("v").plus(0).getPtr())).getDouble("y") + delta);
+ maxht = MAX(maxht, delta);
+ }
+ /* If there are cluster labels and the drawing is rotated, we need special processing to
+ * allocate enough room. We use adjustRanks for this, and then recompute the maxht if
+ * the ranks are to be equally spaced. This seems simpler and appears to work better than
+ * handling equal spacing as a special case.
+ */
+ if (lbl!=0 && GD_flip(g)!=0) {
+UNSUPPORTED("bxjqk5nu40mwo1156dicr9tur"); // adjustRanks(g, 0);
+UNSUPPORTED("6vy9qfed3u61pmvy12724s9l4"); // if (GD_exact_ranksep(g)) { /* recompute maxht */
+UNSUPPORTED("74f5n6u4x39ngn0gsan7fgzyr"); // maxht = 0;
+UNSUPPORTED("2pd9g1n9b0746fgt892degls3"); // r = GD_maxrank(g);
+UNSUPPORTED("8dils3hlxottsbf2iuapvhqeq"); // d0 = (ND_coord(rank[r].v[0])).y;
+UNSUPPORTED("cw5accmrcan3lqfc789udgcka"); // while (--r >= GD_minrank(g)) {
+UNSUPPORTED("6bxo7bknt38qh9t31zr7p6kie"); // d1 = (ND_coord(rank[r].v[0])).y;
+UNSUPPORTED("b1ta7vjm5i7swyklhfwy27w35"); // delta = d1 - d0;
+UNSUPPORTED("65l8hg0imd48bfdu614k2kylt"); // maxht = MAX(maxht, delta);
+UNSUPPORTED("5irf6cp6xdzi2ik033azsbauo"); // d0 = d1;
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+ }
+ /* re-assign if ranks are equally spaced */
+ if (GD_exact_ranksep(g)!=0) {
+UNSUPPORTED("cyxbyjrdzywkc46nl8lkrngai"); // for (r = GD_maxrank(g) - 1; r >= GD_minrank(g); r--)
+UNSUPPORTED("5sd5ltavyp6llt0t2t0xmqwj5"); // if (rank[r].n > 0) /* this may reflect the same problem :-() */
+UNSUPPORTED("5zoeqpznt31feqxjcx2rg0o1f"); // (ND_coord(rank[r].v[0])).y=
+UNSUPPORTED("e6dfx5uesysjaefb0djyfp7f"); // (ND_coord(rank[r + 1].v[0])).y + maxht;
+ }
+ /* copy ycoord assignment from leftmost nodes to others */
+ for (n = GD_nlist(g); n!=null; n = ND_next(n))
+ ND_coord(n).y = ND_coord(rank.plus(ND_rank(n)).getArrayOfPtr("v").plus(0).getPtr()).getDouble("y");
+} finally {
+LEAVING("bp8vmol4ncadervcfossysdtd","set_ycoords");
+}
+}
+
+
+
+
+//3 9ay2xnnmh407i32pfokujfda5
+//static void dot_compute_bb(graph_t * g, graph_t * root)
+public static void dot_compute_bb(Agraph_s g, Agraph_s root) {
+ENTERING("9ay2xnnmh407i32pfokujfda5","dot_compute_bb");
+try {
+ int r, c;
+ double x, offset;
+ Agnode_s v;
+ final ST_pointf LL = new ST_pointf();
+ final ST_pointf UR = new ST_pointf();
+ if (EQ(g, dot_root(g))) {
+ LL.x = INT_MAX;
+ UR.x = -((double)INT_MAX);
+ for (r = GD_minrank(g); r <= GD_maxrank(g); r++) {
+ int rnkn = GD_rank(g).plus(r).getInt("n");
+ if (rnkn == 0)
+ continue;
+ if ((v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(0).getPtr()) == null)
+ continue;
+ for (c = 1; (ND_node_type(v) != 0) && c < rnkn; c++)
+ v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(c).getPtr();
+ if (ND_node_type(v) == 0) {
+ x = ND_coord(v).getDouble("x") - ND_lw(v);
+ LL.setDouble("x", MIN(LL.getDouble("x"), x));
+ }
+ else continue;
+ /* At this point, we know the rank contains a NORMAL node */
+ v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(rnkn - 1).getPtr();
+ for (c = rnkn-2; ND_node_type(v) != 0; c--)
+ v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(c).getPtr();
+ x = ND_coord(v).getDouble("x") + ND_rw(v);
+ UR.x = MAX(UR.getDouble("x"), x);
+ }
+ offset = 8;
+ for (c = 1; c <= GD_n_cluster(g); c++) {
+ x = (double)(GD_bb(GD_clust(g).plus(c)).LL.x - offset);
+ LL.x = MIN(LL.getDouble("x"), x);
+ x = (double)(GD_bb(GD_clust(g).plus(c)).UR.x + offset);
+ UR.x = MAX(UR.getDouble("x"), x);
+ }
+ } else {
+ LL.x = (double)(ND_rank(GD_ln(g)));
+ UR.x = (double)(ND_rank(GD_rn(g)));
+ }
+ LL.y = ND_coord(GD_rank(root).plus(GD_maxrank(g)).getArrayOfPtr("v").plus(0).getPtr()).getDouble("y") - GD_ht1(g);
+ UR.y = ND_coord(GD_rank(root).plus(GD_minrank(g)).getArrayOfPtr("v").plus(0).getPtr()).getDouble("y") + GD_ht2(g);
+ GD_bb(g).setStruct("LL", LL);
+ GD_bb(g).setStruct("UR", UR);
+} finally {
+LEAVING("9ay2xnnmh407i32pfokujfda5","dot_compute_bb");
+}
+}
+
+
+
+
+
+//3 dlbpiimh9g9ff9w7wjoabf817
+// static void rec_bb(graph_t * g, graph_t * root)
+public static void rec_bb(Agraph_s g, Agraph_s root) {
+ENTERING("dlbpiimh9g9ff9w7wjoabf817","rec_bb");
+try {
+ int c;
+ for (c = 1; c <= GD_n_cluster(g); c++)
+ rec_bb((Agraph_s) GD_clust(g).plus(c).getPtr(), root);
+ dot_compute_bb(g, root);
+} finally {
+LEAVING("dlbpiimh9g9ff9w7wjoabf817","rec_bb");
+}
+}
+
+
+
+
+//3 2p3nacev7k2jft9xov90nke50
+// static void scale_bb(graph_t * g, graph_t * root, double xf, double yf)
+public static Object scale_bb(Object... arg) {
+UNSUPPORTED("9zkkf6x8cj12vuzqrjaoxfn8s"); // static void scale_bb(graph_t * g, graph_t * root, double xf, double yf)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("53xzwretgdbd0atozc0w6hagb"); // int c;
+UNSUPPORTED("7z5fb6iyowsosn1hiz7opeoc6"); // for (c = 1; c <= GD_n_cluster(g); c++)
+UNSUPPORTED("7leh3r5v7roon4liia73wue7e"); // scale_bb(GD_clust(g)[c], root, xf, yf);
+UNSUPPORTED("duz0iqmos1i372cztpjtsemab"); // GD_bb(g).LL.x *= xf;
+UNSUPPORTED("ja25041s2x99bhwj5wcliok0"); // GD_bb(g).LL.y *= yf;
+UNSUPPORTED("7mpnp4j7m1ymn1zdbxzeh5xxd"); // GD_bb(g).UR.x *= xf;
+UNSUPPORTED("4ahigy1a10wsl6lvc90lpax5e"); // GD_bb(g).UR.y *= yf;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 53z9yhpfixulhgqsauulkllvc
+// static void adjustAspectRatio (graph_t* g, aspect_t* asp)
+public static Object adjustAspectRatio(Object... arg) {
+UNSUPPORTED("ezldb6r0csirv1fmkq5itw1v2"); // static void adjustAspectRatio (graph_t* g, aspect_t* asp)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7rtldqefvdgcf4u50kulbxtvn"); // double AR = (GD_bb(g).UR.x - GD_bb(g).LL.x)/(GD_bb(g).UR.y - GD_bb(g).LL.y);
+UNSUPPORTED("cve2on8gll5i0vomy8lnwhai2"); // if (Verbose) {
+UNSUPPORTED("6z0q1m3yc6o11ejsa59eghqag"); // fprintf(stderr, "AR=%0.4lf\t Area= %0.4lf\t", AR, (double)(GD_bb(g).UR.x - GD_bb(g).LL.x)*(GD_bb(g).UR.y - GD_bb(g).LL.y)/10000.0);
+UNSUPPORTED("2uealcdkjdgg8ne1cijkbagpu"); // fprintf(stderr, "Dummy=%d\n", countDummyNodes(g));
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("96mqnzcfbfghxkxkn1x8kdh8i"); // if (AR > 1.1*asp->targetAR) {
+UNSUPPORTED("6gq7uj15zh138zyae50c8nh2z"); // asp->nextIter = (int)(asp->targetAR * (double)(asp->curIterations - asp->prevIterations)/(AR));
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("e1443w2cx49ogpsf5m59zy4fq"); // else if (AR <= 0.8 * asp->targetAR) {
+UNSUPPORTED("5awa0x1pxpta5wou27bzrtvoc"); // asp->nextIter = -1;
+UNSUPPORTED("5xdo0sx20rmxgmdkrm1giaige"); // if (Verbose)
+UNSUPPORTED("du5ztjo6nfo54ailmk1tqs05b"); // fprintf(stderr, "Going to apply another expansion.\n");
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("1nyzbeonram6636b1w955bypn"); // else {
+UNSUPPORTED("757eq4638npmb5w5e39iemxfo"); // asp->nextIter = 0;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("2di5wqm6caczzl6bvqe35ry8y"); // if (Verbose)
+UNSUPPORTED("29wdml7g4931q8kgah8hgwjd0"); // fprintf(stderr, "next#iter=%d\n", asp->nextIter);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 7effq6z6ur101wrch6ttozr26
+// static void set_aspect(graph_t * g, aspect_t* asp)
+public static void set_aspect(Agraph_s g, aspect_t asp) {
+ENTERING("7effq6z6ur101wrch6ttozr26","set_aspect");
+try {
+ double xf = 0.0, yf = 0.0, actual, desired;
+ Agnode_s n;
+ boolean scale_it, filled;
+ point sz = (point) Memory.malloc(point.class);
+ rec_bb(g, g);
+ if ((GD_maxrank(g) > 0) && (GD_drawing(g).getInt("ratio_kind")!=0)) {
+UNSUPPORTED("5wbmy4x78flo2ztfabki9lyjf"); // sz.x = GD_bb(g).UR.x - GD_bb(g).LL.x;
+UNSUPPORTED("catd6eu5oc282ln95k9zz52f3"); // sz.y = GD_bb(g).UR.y - GD_bb(g).LL.y; /* normalize */
+UNSUPPORTED("21zvq2qx1j34j1i1879zyhzpj"); // if (GD_flip(g)) {
+UNSUPPORTED("d55uzald1tvs7xodnua67pxv6"); // int t = sz.x;
+UNSUPPORTED("47s1klx0pfzda4e311w53ou7e"); // sz.x = sz.y;
+UNSUPPORTED("3tx1mj7j0rqw33y24a0gu4ali"); // sz.y = t;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("4ct8ztqxnsskgphsp1v3aw5ec"); // scale_it = NOT(0);
+UNSUPPORTED("8v772n1u4wqlmskqfswlzcz2o"); // if (GD_drawing(g)->ratio_kind == R_AUTO)
+UNSUPPORTED("8mtmgag5dxj8ttlcabbpd865p"); // filled = idealsize(g, .5);
+UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else
+UNSUPPORTED("bxtk5e5ls8qsd36eucvhufg9y"); // filled = (GD_drawing(g)->ratio_kind == R_FILL);
+UNSUPPORTED("2atgu691bmn6h9jvk8lve5qzc"); // if (filled) {
+UNSUPPORTED("1zx5etcjofceqjvogfn8urkdj"); // /* fill is weird because both X and Y can stretch */
+UNSUPPORTED("7ezqjon4u21dwg4qvxssrnwfc"); // if (GD_drawing(g)->size.x <= 0)
+UNSUPPORTED("dao0fnoi65upcdtr9csqhhy41"); // scale_it = 0;
+UNSUPPORTED("6q044im7742qhglc4553noina"); // else {
+UNSUPPORTED("6ifkww34s7php908n9wg0oiju"); // xf = (double) GD_drawing(g)->size.x / (double) sz.x;
+UNSUPPORTED("6faiikvxwdge2ydblv90976hb"); // yf = (double) GD_drawing(g)->size.y / (double) sz.y;
+UNSUPPORTED("5xkzvdrdnfd5afhhxgajbywya"); // if ((xf < 1.0) || (yf < 1.0)) {
+UNSUPPORTED("cvkvyq93xp1itpomhj1r2xlzy"); // if (xf < yf) {
+UNSUPPORTED("capfpf4tncicsp81elmwvf0l"); // yf = yf / xf;
+UNSUPPORTED("7sdzyzqj65rbq6edfgf5x6xht"); // xf = 1.0;
+UNSUPPORTED("d86r93g8nz9a1kfzgi7f8j8nh"); // } else {
+UNSUPPORTED("emwaipsi6kyqbpk2y26k3cxfw"); // xf = xf / yf;
+UNSUPPORTED("1s91x56ftedjsc3m32dqgspqn"); // yf = 1.0;
+UNSUPPORTED("dkxvw03k2gg9anv4dbze06axd"); // }
+UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // }
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("c48w89y9jw5baxqqucmiyfha7"); // } else if (GD_drawing(g)->ratio_kind == R_EXPAND) {
+UNSUPPORTED("7ezqjon4u21dwg4qvxssrnwfc"); // if (GD_drawing(g)->size.x <= 0)
+UNSUPPORTED("dao0fnoi65upcdtr9csqhhy41"); // scale_it = 0;
+UNSUPPORTED("6q044im7742qhglc4553noina"); // else {
+UNSUPPORTED("akfs904fsk7cyl8wbv0x7fnvz"); // xf = (double) GD_drawing(g)->size.x /
+UNSUPPORTED("1ewqbc4kglc2kg1n13euxrxzh"); // (double) GD_bb(g).UR.x;
+UNSUPPORTED("6fmkpg9ypaxceugi24gklvdra"); // yf = (double) GD_drawing(g)->size.y /
+UNSUPPORTED("8mskb0mqou89myfbiihsjpbg6"); // (double) GD_bb(g).UR.y;
+UNSUPPORTED("a2jzgqbpoanzqdqc7vjk32vmz"); // if ((xf > 1.0) && (yf > 1.0)) {
+UNSUPPORTED("6np8qfg5qnlaypikhw0bdx84j"); // double scale = MIN(xf, yf);
+UNSUPPORTED("272bmuv1row7l9tla5bhot840"); // xf = yf = scale;
+UNSUPPORTED("738mi6h8ef0itznt34ngxe25o"); // } else
+UNSUPPORTED("b5qs3ho2fcywk3sd5cw3m88kw"); // scale_it = 0;
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("d7deewhp6akdb13j7ry364hbd"); // } else if (GD_drawing(g)->ratio_kind == R_VALUE) {
+UNSUPPORTED("fpejwrlknxizaxxibhuyaxdt"); // desired = GD_drawing(g)->ratio;
+UNSUPPORTED("douwz2voka0puoeooqjn8kijk"); // actual = ((double) sz.y) / ((double) sz.x);
+UNSUPPORTED("7u9yvuqazzo19geppiphd9rfh"); // if (actual < desired) {
+UNSUPPORTED("apqq3m2rezfl96zbvk7lut02"); // yf = desired / actual;
+UNSUPPORTED("8po0oizki4figodjv9xku16gq"); // xf = 1.0;
+UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else {
+UNSUPPORTED("84c3pp9xgnii11clyyxblqmy6"); // xf = actual / desired;
+UNSUPPORTED("1tr1b9rp1b00pcafss87kadfe"); // yf = 1.0;
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("6to1esmb8qfrhzgtr7jdqleja"); // } else
+UNSUPPORTED("csvnhx5mo535o6ue1tg3ktjhs"); // scale_it = 0;
+UNSUPPORTED("bh2d68e9s7cr7k1bl0h9fmr9a"); // if (scale_it) {
+UNSUPPORTED("b8symsgdtoq84y3j1151pv0g4"); // if (GD_flip(g)) {
+UNSUPPORTED("bi983gfofc0blj8r4yetj14kb"); // double t = xf;
+UNSUPPORTED("69pmocxfvmk0urni4fg0x4na5"); // xf = yf;
+UNSUPPORTED("cyt895z1pa5arxz4d1kv0hqgq"); // yf = t;
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("crtcqz91ff5l8ntjbne40b5x4"); // for (n = GD_nlist(g); n; n = ND_next(n)) {
+UNSUPPORTED("brs6nych5z9m0a75ixbe5l80o"); // ND_coord(n).x = ROUND(ND_coord(n).x * xf);
+UNSUPPORTED("cpe0pjsilppgrp2ofysn4y54w"); // ND_coord(n).y = ROUND(ND_coord(n).y * yf);
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("8f0d3etdet1pk8ikvltmz5h2s"); // scale_bb(g, g, xf, yf);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+ }
+ if (asp!=null) adjustAspectRatio (g, asp);
+} finally {
+LEAVING("7effq6z6ur101wrch6ttozr26","set_aspect");
+}
+}
+
+
+
+
+//3 41mmud7cyx1rwhd0k7g7weaf8
+// static point resize_leaf(node_t * leaf, point lbound)
+public static Object resize_leaf(Object... arg) {
+UNSUPPORTED("alcqddrml4aj55twvzwyyvfjh"); // static point resize_leaf(node_t * leaf, point lbound)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("dnj5vqe4cb2yzzx75ubwrxvav"); // gv_nodesize(leaf, GD_flip(agraphof(leaf)));
+UNSUPPORTED("bxig9t3r62l84xejntt3x96kv"); // ND_coord(leaf).y = lbound.y;
+UNSUPPORTED("bx00ps5hied5a63922sqqpvhi"); // ND_coord(leaf).x = lbound.x + ND_lw(leaf);
+UNSUPPORTED("euhijhn76fi66yqoh8gxk5nq0"); // lbound.x = lbound.x + ND_lw(leaf) + ND_rw(leaf) + GD_nodesep(agraphof(leaf));
+UNSUPPORTED("1xmj5l8g8znua01mljujyh61i"); // return lbound;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4jx34mwc4aby8v45omelmfluv
+// static point place_leaf(graph_t* ing, node_t * leaf, point lbound, int order)
+public static Object place_leaf(Object... arg) {
+UNSUPPORTED("cetlk9m8mjd69vuru3rjho0lw"); // static point place_leaf(graph_t* ing, node_t * leaf, point lbound, int order)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("b1ht34ftmnpsuxflrqun4ptkr"); // node_t *leader;
+UNSUPPORTED("aqfu9qyb55o3lehhaqmxag540"); // graph_t *g = dot_root(ing);
+UNSUPPORTED("1b5u4ut4j70lu60geogmkv572"); // leader = UF_find(leaf);
+UNSUPPORTED("3urvo2e4w7312r8scg44o0hqw"); // if (leaf != leader)
+UNSUPPORTED("azdkjz4shu49j3fzjpazxrpwz"); // fast_nodeapp(leader, leaf);
+UNSUPPORTED("95h5y689udztblrtgdwc8y2ei"); // ND_order(leaf) = order;
+UNSUPPORTED("cvsh6pf3vxzxd2zn1u8ykd8hx"); // ND_rank(leaf) = ND_rank(leader);
+UNSUPPORTED("6k8r94a4chbol18r2rnbi9haj"); // GD_rank(g)[ND_rank(leaf)].v[ND_order(leaf)] = leaf;
+UNSUPPORTED("7ku2dbhi28rhi6dtag1v4zung"); // return resize_leaf(leaf, lbound);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 1lejhh3evsa10auyj7cgqj8ub
+// static void make_leafslots(graph_t * g)
+public static void make_leafslots(Agraph_s g) {
+ENTERING("1lejhh3evsa10auyj7cgqj8ub","make_leafslots");
+try {
+ int i, j, r;
+ Agnode_s v;
+ for (r = GD_minrank(g); r <= GD_maxrank(g); r++) {
+ j = 0;
+ for (i = 0; i < GD_rank(g).plus(r).getInt("n"); i++) {
+ v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).getPtr();
+ ND_order(v, j);
+ if (ND_ranktype(v) == 6)
+ j = j + ND_UF_size(v);
+ else
+ j++;
+ }
+ if (j <= GD_rank(g).plus(r).getInt("n"))
+ continue;
+ GD_rank(g).plus(r).setPtr("v", ALLOC_empty(j + 1, GD_rank(g).plus(r).getPtr("v"), Agnode_s.class));
+ for (i = GD_rank(g).plus(r).getInt("n") - 1; i >= 0; i--) {
+ v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(i).getPtr();
+ GD_rank(g).plus(r).getArrayOfPtr("v").plus(ND_order(v)).setPtr(v);
+ }
+ GD_rank(g).plus(r).setInt("n", j);
+ GD_rank(g).plus(r).getArrayOfPtr("v").plus(j).setPtr(null);
+ }
+} finally {
+LEAVING("1lejhh3evsa10auyj7cgqj8ub","make_leafslots");
+}
+}
+
+
+
+
+//3 wb2wvxthkr2sp9u8113go3j3
+// static void do_leaves(graph_t * g, node_t * leader)
+public static Object do_leaves(Object... arg) {
+UNSUPPORTED("5nmyuqyhfqfwbmgdj5aot9fp4"); // static void do_leaves(graph_t * g, node_t * leader)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("2bs0wcp6367dz1o5x166ec7l8"); // int j;
+UNSUPPORTED("4bxv0pw87c31sbbz6x6s1cq9d"); // point lbound;
+UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n;
+UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e;
+UNSUPPORTED("b9upgllg8zjx49090hr3afv91"); // if (ND_UF_size(leader) <= 1)
+UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return;
+UNSUPPORTED("9m0hiwybw3dr0lcxmgq833heo"); // lbound.x = ND_coord(leader).x - ND_lw(leader);
+UNSUPPORTED("ev0phf24gpqz3xtvtueq72f7g"); // lbound.y = ND_coord(leader).y;
+UNSUPPORTED("90r9xqe4faj7b1g8907ord1x3"); // lbound = resize_leaf(leader, lbound);
+UNSUPPORTED("66ue8mvk3axhgbkcg3xqo94tb"); // if (ND_out(leader).size > 0) { /* in-edge leaves */
+UNSUPPORTED("9lq5udq73fgfeqyqsxw6i3pgm"); // n = aghead(ND_out(leader).list[0]);
+UNSUPPORTED("4vp9ny4udt1jcmibfgpwgrnqo"); // j = ND_order(leader) + 1;
+UNSUPPORTED("3ml0tasns5tz6d5xc2xdb6nc"); // for (e = agfstin(g, n); e; e = agnxtin(g, e)) {
+UNSUPPORTED("e2y71fdc15yxylowp6ohlal9a"); // edge_t *e1 = AGMKOUT(e);
+UNSUPPORTED("ew4udmdawt257gbk5kzmi1n1"); // if ((agtail(e1) != leader) && (UF_find(agtail(e1)) == leader)) {
+UNSUPPORTED("d2r94m7xk4qa9hn6s2td5nb6h"); // lbound = place_leaf(g, agtail(e1), lbound, j++);
+UNSUPPORTED("5xk9d4ra447xucksge6c9mgos"); // unmerge_oneway(e1);
+UNSUPPORTED("4dqun0n52lcyerkebva2hxh15"); // elist_append(e1, ND_in(aghead(e1)));
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("6owoaz61uf3928omhuf3rqjoa"); // } else { /* out edge leaves */
+UNSUPPORTED("4lbkem8hb4jy3gdg6nt3cbtl9"); // n = agtail(ND_in(leader).list[0]);
+UNSUPPORTED("4vp9ny4udt1jcmibfgpwgrnqo"); // j = ND_order(leader) + 1;
+UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) {
+UNSUPPORTED("38a98cy0214odvsa98hgyce8q"); // if ((aghead(e) != leader) && (UF_find(aghead(e)) == leader)) {
+UNSUPPORTED("9j9o79r2bdc6npidu38aq0cym"); // lbound = place_leaf(g, aghead(e), lbound, j++);
+UNSUPPORTED("6wbwzuqqh5vxume7ga2kuejcf"); // unmerge_oneway(e);
+UNSUPPORTED("dv9vv9pfcd3cibfjn258toxyv"); // elist_append(e, ND_out(agtail(e)));
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 alpljm8o6nsam95ly6leelnbp
+// int ports_eq(edge_t * e, edge_t * f)
+public static boolean ports_eq(Agedge_s e, Agedge_s f) {
+ENTERING("alpljm8o6nsam95ly6leelnbp","ports_eq");
+try {
+ return ((ED_head_port(e).defined == ED_head_port(f).defined)
+ && (((ED_head_port(e).p.x == ED_head_port(f).p.x) &&
+ (ED_head_port(e).p.y == ED_head_port(f).p.y))
+ || (ED_head_port(e).defined == 0))
+ && (((ED_tail_port(e).p.x == ED_tail_port(f).p.x) &&
+ (ED_tail_port(e).p.y == ED_tail_port(f).p.y))
+ || (ED_tail_port(e).defined == 0))
+ );
+} finally {
+LEAVING("alpljm8o6nsam95ly6leelnbp","ports_eq");
+}
+}
+
+
+
+
+//3 cfotmdif5xv7n6oauyvzv0qwa
+// static void expand_leaves(graph_t * g)
+public static void expand_leaves(Agraph_s g) {
+ENTERING("cfotmdif5xv7n6oauyvzv0qwa","expand_leaves");
+try {
+ int i, d;
+ Agnode_s n;
+ Agedge_s e, f;
+ make_leafslots(g);
+ for (n = GD_nlist(g); n!=null; n = ND_next(n)) {
+ if (ND_inleaf(n)!=null)
+ do_leaves(g, ND_inleaf(n));
+ if (ND_outleaf(n)!=null)
+ do_leaves(g, ND_outleaf(n));
+ if (ND_other(n).listNotNull())
+ for (i = 0; (e = (Agedge_s) ND_other(n).getFromList(i))!=null; i++) {
+ if ((d = ND_rank(aghead(e)) - ND_rank(aghead(e))) == 0)
+ continue;
+ f = ED_to_orig(e);
+ if (ports_eq(e, f) == false) {
+ zapinlist(ND_other(n).amp(), e);
+ if (d == 1)
+ fast_edge(e);
+ /*else unitize(e); ### */
+ i--;
+ }
+ }
+ }
+} finally {
+LEAVING("cfotmdif5xv7n6oauyvzv0qwa","expand_leaves");
+}
+}
+
+
+
+
+//3 d4b57ugpwxy567pfmxn14ed8d
+// static void make_lrvn(graph_t * g)
+public static void make_lrvn(Agraph_s g) {
+ENTERING("d4b57ugpwxy567pfmxn14ed8d","make_lrvn");
+try {
+ Agnode_s ln, rn;
+ if (GD_ln(g)!=null)
+ return;
+ ln = virtual_node(dot_root(g));
+ ND_node_type(ln, 2);
+ rn = virtual_node(dot_root(g));
+ ND_node_type(rn, 2);
+ if (GD_label(g)!=null && NEQ(g, dot_root(g)) && N(GD_flip(agroot(g)))) {
+ int w = MAX((int)GD_border(g).plus(0).getDouble("x"), (int)GD_border(g).plus(2).getDouble("x"));
+ make_aux_edge(ln, rn, w, 0);
+ }
+ GD_ln(g, ln);
+ GD_rn(g, rn);
+} finally {
+LEAVING("d4b57ugpwxy567pfmxn14ed8d","make_lrvn");
+}
+}
+
+
+
+
+//3 daz786541idcxnywckcbncazb
+// static void contain_nodes(graph_t * g)
+public static void contain_nodes(Agraph_s g) {
+ENTERING("daz786541idcxnywckcbncazb","contain_nodes");
+try {
+ int margin, r;
+ Agnode_s ln, rn, v;
+ margin = late_int (g, Z.z().G_margin, 8, 0);
+ make_lrvn(g);
+ ln = GD_ln(g);
+ rn = GD_rn(g);
+ for (r = GD_minrank(g); r <= GD_maxrank(g); r++) {
+ if (GD_rank(g).plus(r).getInt("n") == 0)
+ continue;
+ v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(0).getPtr();
+ if (v == null) {
+UNSUPPORTED("1f2esoodtcrdhljk1cq1klyao"); // agerr(AGERR, "contain_nodes clust %s rank %d missing node\n",
+UNSUPPORTED("7w6lv4ywtczwz2y1mg0p3jdav"); // agnameof(g), r);
+UNSUPPORTED("6hqli9m8yickz1ox1qfgtdbnd"); // continue;
+ }
+ make_aux_edge(ln, v,
+ ND_lw(v) + margin + GD_border(g).plus(3).getStruct().getDouble("x"), 0);
+ v = (Agnode_s) GD_rank(g).plus(r).getArrayOfPtr("v").plus(GD_rank(g).plus(r).getInt("n") - 1).getPtr();
+ make_aux_edge(v, rn,
+ ND_rw(v) + margin + GD_border(g).plus(1).getStruct().getDouble("x"), 0);
+ }
+} finally {
+LEAVING("daz786541idcxnywckcbncazb","contain_nodes");
+}
+}
+
+
+
+
+//3 betdvb8dk8icvqkn6e6y5h94x
+// static boolean idealsize(graph_t * g, double minallowed)
+public static Object idealsize(Object... arg) {
+UNSUPPORTED("74m5dgfkgpr7bq7elj8bk5w6z"); // static boolean idealsize(graph_t * g, double minallowed)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("bp9bpmgkh2gsdynqe5wio0i32"); // double xf, yf, f, R;
+UNSUPPORTED("8404v5b2qtn2x2mlgbyxidbx4"); // pointf b, relpage, margin;
+UNSUPPORTED("a3ke28asz3w87p4n8bgil541i"); // /* try for one page */
+UNSUPPORTED("avi96122npbhja9hwa4goidp"); // relpage = GD_drawing(g)->page;
+UNSUPPORTED("19uch6jfal0x385xni41gqam6"); // if (relpage.x < 0.001 || relpage.y < 0.001)
+UNSUPPORTED("52kuioyxcuboss35kg15wudvt"); // return 0; /* no page was specified */
+UNSUPPORTED("d6i2metpbkzakq2abzgvcdzle"); // margin = GD_drawing(g)->margin;
+UNSUPPORTED("asgqm8o7cruxxpfx9lobsif1c"); // relpage = sub_pointf(relpage, margin);
+UNSUPPORTED("asgqm8o7cruxxpfx9lobsif1c"); // relpage = sub_pointf(relpage, margin);
+UNSUPPORTED("aqhjsr7rv4ig7d1vagm74jpmo"); // b.x = GD_bb(g).UR.x;
+UNSUPPORTED("30xemhqjxz13hiyv2o2r8mol1"); // b.y = GD_bb(g).UR.y;
+UNSUPPORTED("cv2s8vkuet41gdoms8vue473z"); // xf = relpage.x / b.x;
+UNSUPPORTED("rvfej1l4o57i17le73vt80cf"); // yf = relpage.y / b.y;
+UNSUPPORTED("4f2ksj9hf0fi9wnzrz20eswmo"); // if ((xf >= 1.0) && (yf >= 1.0))
+UNSUPPORTED("e64anddwrzfgr4xoopjelwqg1"); // return 0; /* fits on one page */
+UNSUPPORTED("9vakpuy3iri2q9upsuy7lqhln"); // f = MIN(xf, yf);
+UNSUPPORTED("ccu6nxd64lwxm1h8x0sbrkdv7"); // xf = yf = MAX(f, minallowed);
+UNSUPPORTED("yc64sd7yr28zgjqrr734fc7i"); // R = ceil((xf * b.x) / relpage.x);
+UNSUPPORTED("aht5rw6872hwmg7vaop0eairh"); // xf = ((R * relpage.x) / b.x);
+UNSUPPORTED("asw2ato73u7m4kb07x2mr2snv"); // R = ceil((yf * b.y) / relpage.y);
+UNSUPPORTED("76j6b15q20gswxka8cglflbym"); // yf = ((R * relpage.y) / b.y);
+UNSUPPORTED("49gpvau7p2bvvkp6oemyqyjev"); // GD_drawing(g)->size.x = b.x * xf;
+UNSUPPORTED("7gewumkvzgtqon1jqxp8yf0kk"); // GD_drawing(g)->size.y = b.y * yf;
+UNSUPPORTED("8fwlqtemsmckleh6946lyd8mw"); // return NOT(0);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+}
diff --git a/src/gen/lib/dotgen/rank__c.java b/src/gen/lib/dotgen/rank__c.java
new file mode 100644
index 0000000..6e6aa2c
--- /dev/null
+++ b/src/gen/lib/dotgen/rank__c.java
@@ -0,0 +1,2136 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * Project Info: http://plantuml.com
+ *
+ * If you like this project or if you find it useful, you can support us at:
+ *
+ * http://plantuml.com/patreon (only 1$ per month!)
+ * http://plantuml.com/paypal
+ *
+ * This file is part of Smetana.
+ * Smetana is a partial translation of Graphviz/Dot sources from C to Java.
+ *
+ * (C) Copyright 2009-2017, Arnaud Roques
+ *
+ * This translation is distributed under the same Licence as the original C program:
+ *
+ *************************************************************************
+ * Copyright (c) 2011 AT&T Intellectual Property
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: See CVS logs. Details at http://www.graphviz.org/
+ *************************************************************************
+ *
+ * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
+ * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0]
+ *
+ * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES
+ * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ *
+ * You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package gen.lib.dotgen;
+import static gen.lib.cgraph.attr__c.agget;
+import static gen.lib.cgraph.edge__c.agfstout;
+import static gen.lib.cgraph.edge__c.aghead;
+import static gen.lib.cgraph.edge__c.agnxtout;
+import static gen.lib.cgraph.edge__c.agsubedge;
+import static gen.lib.cgraph.id__c.agnameof;
+import static gen.lib.cgraph.node__c.agfstnode;
+import static gen.lib.cgraph.node__c.agnxtnode;
+import static gen.lib.cgraph.obj__c.agcontains;
+import static gen.lib.cgraph.obj__c.agdelete;
+import static gen.lib.cgraph.subg__c.agfstsubg;
+import static gen.lib.cgraph.subg__c.agnxtsubg;
+import static gen.lib.common.input__c.do_graph_label;
+import static gen.lib.common.ns__c.rank;
+import static gen.lib.common.utils__c.UF_find;
+import static gen.lib.common.utils__c.UF_singleton;
+import static gen.lib.common.utils__c.UF_union;
+import static gen.lib.common.utils__c.maptoken;
+import static gen.lib.dotgen.acyclic__c.acyclic_;
+import static gen.lib.dotgen.aspect__c.rank3;
+import static gen.lib.dotgen.class1__c.class1_;
+import static gen.lib.dotgen.decomp__c.decompose;
+import static gen.lib.dotgen.dotinit__c.dot_root;
+import static smetana.core.JUtils.EQ;
+import static smetana.core.JUtils.LOG2;
+import static smetana.core.JUtils.NEQ;
+import static smetana.core.JUtils.strncmp;
+import static smetana.core.JUtilsDebug.ENTERING;
+import static smetana.core.JUtilsDebug.LEAVING;
+import static smetana.core.Macro.ED_minlen;
+import static smetana.core.Macro.ED_to_orig;
+import static smetana.core.Macro.ED_to_virt;
+import static smetana.core.Macro.GD_clust;
+import static smetana.core.Macro.GD_comp;
+import static smetana.core.Macro.GD_flags;
+import static smetana.core.Macro.GD_has_labels;
+import static smetana.core.Macro.GD_leader;
+import static smetana.core.Macro.GD_maxrank;
+import static smetana.core.Macro.GD_maxset;
+import static smetana.core.Macro.GD_minrank;
+import static smetana.core.Macro.GD_minset;
+import static smetana.core.Macro.GD_n_cluster;
+import static smetana.core.Macro.GD_nlist;
+import static smetana.core.Macro.GD_parent;
+import static smetana.core.Macro.GD_ranksep;
+import static smetana.core.Macro.GD_set_type;
+import static smetana.core.Macro.MAXSHORT;
+import static smetana.core.Macro.N;
+import static smetana.core.Macro.ND_clust;
+import static smetana.core.Macro.ND_in;
+import static smetana.core.Macro.ND_mark;
+import static smetana.core.Macro.ND_next;
+import static smetana.core.Macro.ND_node_type;
+import static smetana.core.Macro.ND_out;
+import static smetana.core.Macro.ND_rank;
+import static smetana.core.Macro.ND_ranktype;
+import static smetana.core.Macro.UNSUPPORTED;
+import static smetana.core.Macro.ZALLOC;
+import h.Agedge_s;
+import h.Agnode_s;
+import h.Agraph_s;
+import h.aspect_t;
+import h.boxf;
+import h.elist;
+import h.point;
+import h.pointf;
+import smetana.core.CString;
+import smetana.core.JUtils;
+import smetana.core.Memory;
+import smetana.core.Z;
+import smetana.core.__struct__;
+
+public class rank__c {
+//1 2digov3edok6d5srhgtlmrycs
+// extern lt_symlist_t lt_preloaded_symbols[]
+
+
+//1 baedz5i9est5csw3epz3cv7z
+// typedef Ppoly_t Ppolyline_t
+
+
+//1 9k44uhd5foylaeoekf3llonjq
+// extern Dtmethod_t* Dtset
+
+
+//1 1ahfywsmzcpcig2oxm7pt9ihj
+// extern Dtmethod_t* Dtbag
+
+
+//1 anhghfj3k7dmkudy2n7rvt31v
+// extern Dtmethod_t* Dtoset
+
+
+//1 5l6oj1ux946zjwvir94ykejbc
+// extern Dtmethod_t* Dtobag
+
+
+//1 2wtf222ak6cui8cfjnw6w377z
+// extern Dtmethod_t* Dtlist
+
+
+//1 d1s1s6ibtcsmst88e3057u9r7
+// extern Dtmethod_t* Dtstack
+
+
+//1 axa7mflo824p6fspjn1rdk0mt
+// extern Dtmethod_t* Dtqueue
+
+
+//1 ega812utobm4xx9oa9w9ayij6
+// extern Dtmethod_t* Dtdeque
+
+
+//1 cyfr996ur43045jv1tjbelzmj
+// extern Dtmethod_t* Dtorder
+
+
+//1 wlofoiftbjgrrabzb2brkycg
+// extern Dtmethod_t* Dttree
+
+
+//1 12bds94t7voj7ulwpcvgf6agr
+// extern Dtmethod_t* Dthash
+
+
+//1 9lqknzty480cy7zsubmabkk8h
+// extern Dtmethod_t _Dttree
+
+
+//1 bvn6zkbcp8vjdhkccqo1xrkrb
+// extern Dtmethod_t _Dthash
+
+
+//1 9lidhtd6nsmmv3e7vjv9e10gw
+// extern Dtmethod_t _Dtlist
+
+
+//1 34ujfamjxo7xn89u90oh2k6f8
+// extern Dtmethod_t _Dtqueue
+
+
+//1 3jy4aceckzkdv950h89p4wjc8
+// extern Dtmethod_t _Dtstack
+
+
+//1 8dfqgf3u1v830qzcjqh9o8ha7
+// extern Agmemdisc_t AgMemDisc
+
+
+//1 18k2oh2t6llfsdc5x0wlcnby8
+// extern Agiddisc_t AgIdDisc
+
+
+//1 a4r7hi80gdxtsv4hdoqpyiivn
+// extern Agiodisc_t AgIoDisc
+
+
+//1 bnzt5syjb7mgeru19114vd6xx
+// extern Agdisc_t AgDefaultDisc
+
+
+//1 35y2gbegsdjilegaribes00mg
+// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected
+
+
+//1 c2rygslq6bcuka3awmvy2b3ow
+// typedef Agsubnode_t Agnoderef_t
+
+
+//1 xam6yv0dcsx57dtg44igpbzn
+// typedef Dtlink_t Agedgeref_t
+
+
+//1 nye6dsi1twkbddwo9iffca1j
+// extern char *Version
+
+
+//1 65mu6k7h7lb7bx14jpiw7iyxr
+// extern char **Files
+
+
+//1 2rpjdzsdyrvomf00zcs3u3dyn
+// extern const char **Lib
+
+
+//1 6d2f111lntd2rsdt4gswh5909
+// extern char *CmdName
+
+
+//1 a0ltq04fpeg83soa05a2fkwb2
+// extern char *specificFlags
+
+
+//1 1uv30qeqq2jh6uznlr4dziv0y
+// extern char *specificItems
+
+
+//1 7i4hkvngxe3x7lmg5h6b3t9g3
+// extern char *Gvfilepath
+
+
+//1 9jp96pa73kseya3w6sulxzok6
+// extern char *Gvimagepath
+
+
+//1 40ylumfu7mrvawwf4v2asvtwk
+// extern unsigned char Verbose
+
+
+//1 93st8awjy1z0h07n28qycbaka
+// extern unsigned char Reduce
+
+
+//1 f2vs67ts992erf8onwfglurzp
+// extern int MemTest
+
+
+//1 c6f8whijgjwwagjigmxlwz3gb
+// extern char *HTTPServerEnVar
+
+
+//1 cp4hzj7p87m7arw776d3bt7aj
+// extern char *Output_file_name
+
+
+//1 a3rqagofsgraie6mx0krzkgsy
+// extern int graphviz_errors
+
+
+//1 5up05203r4kxvjn1m4njcgq5x
+// extern int Nop
+
+
+//1 umig46cco431x14b3kosde2t
+// extern double PSinputscale
+
+
+//1 52bj6v8fqz39khasobljfukk9
+// extern int Syntax_errors
+
+
+//1 9ekf2ina8fsjj6y6i0an6somj
+// extern int Show_cnt
+
+
+//1 38di5qi3nkxkq65onyvconk3r
+// extern char** Show_boxes
+
+
+//1 6ri6iu712m8mpc7t2670etpcw
+// extern int CL_type
+
+
+//1 bomxiw3gy0cgd1ydqtek7fpxr
+// extern unsigned char Concentrate
+
+
+//1 cqy3gqgcq8empdrbnrhn84058
+// extern double Epsilon
+
+
+//1 64slegfoouqeg0rmbyjrm8wgr
+// extern int MaxIter
+
+
+//1 88wdinpnmfs4mab4aw62yb0bg
+// extern int Ndim
+
+
+//1 8bbad3ogcelqnnvo5br5s05gq
+// extern int State
+
+
+//1 17rnd8q45zclfn68qqst2vxxn
+// extern int EdgeLabelsDone
+
+
+//1 ymx1z4s8cznjifl2d9f9m8jr
+// extern double Initial_dist
+
+
+//1 a33bgl0c3uqb3trx419qulj1x
+// extern double Damping
+
+
+//1 d9lvrpjg1r0ojv40pod1xwk8n
+// extern int Y_invert
+
+
+//1 71efkfs77q5tq9ex6y0f4kanh
+// extern int GvExitOnUsage
+
+
+//1 4xy2dkdkv0acs2ue9eca8hh2e
+// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin
+
+
+//1 9js5gxgzr74eakgtfhnbws3t9
+// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle
+
+
+//1 anqllp9sj7wo45w6bm11j8trn
+// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth
+
+
+//1 bh0z9puipqw7gymjd5h5b8s6i
+// extern struct fdpParms_s* fdp_parms
+
+
+
+
+//3 ciez0pfggxdljedzsbklq49f0
+// static inline point pointof(int x, int y)
+public static Object pointof(Object... arg) {
+UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x;
+UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 c1s4k85p1cdfn176o3uryeros
+// static inline pointf pointfof(double x, double y)
+public static __struct__<pointf> pointfof(double x, double y) {
+// WARNING!! STRUCT
+return pointfof_w_(x, y).copy();
+}
+private static __struct__<pointf> pointfof_w_(double x, double y) {
+ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", x);
+ r.setDouble("y", y);
+ return r;
+} finally {
+LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof");
+}
+}
+
+
+
+
+//3 7cufnfitrh935ew093mw0i4b7
+// static inline box boxof(int llx, int lly, int urx, int ury)
+public static Object boxof(Object... arg) {
+UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly;
+UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury;
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 1vvsta5i8of59frav6uymguav
+// static inline boxf boxfof(double llx, double lly, double urx, double ury)
+public static __struct__<boxf> boxfof(double llx, double lly, double urx, double ury) {
+// WARNING!! STRUCT
+return boxfof_w_(llx, lly, urx, ury).copy();
+}
+private static __struct__<boxf> boxfof_w_(double llx, double lly, double urx, double ury) {
+ENTERING("1vvsta5i8of59frav6uymguav","boxfof");
+try {
+ final __struct__<boxf> b = JUtils.from(boxf.class);
+ b.getStruct("LL").setDouble("x", llx);
+ b.getStruct("LL").setDouble("y", lly);
+ b.getStruct("UR").setDouble("x", urx);
+ b.getStruct("UR").setDouble("y", ury);
+ return b;
+} finally {
+LEAVING("1vvsta5i8of59frav6uymguav","boxfof");
+}
+}
+
+
+
+
+//3 1n5xl70wxuabyf97mclvilsm6
+// static inline point add_point(point p, point q)
+public static Object add_point(Object... arg) {
+UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x;
+UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 arrsbik9b5tnfcbzsm8gr2chx
+// static inline pointf add_pointf(pointf p, pointf q)
+public static __struct__<pointf> add_pointf(final __struct__<pointf> p, final __struct__<pointf> q) {
+// WARNING!! STRUCT
+return add_pointf_w_(p.copy(), q.copy()).copy();
+}
+private static __struct__<pointf> add_pointf_w_(final __struct__<pointf> p, final __struct__<pointf> q) {
+ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", p.getDouble("x") + q.getDouble("x"));
+ r.setDouble("y", p.getDouble("y") + q.getDouble("y"));
+ return r;
+} finally {
+LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+}
+}
+
+
+
+
+//3 ai2dprak5y6obdsflguh5qbd7
+// static inline point sub_point(point p, point q)
+public static Object sub_point(Object... arg) {
+UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 16f6pyogcv3j7n2p0n8giqqgh
+// static inline pointf sub_pointf(pointf p, pointf q)
+public static Object sub_pointf(Object... arg) {
+UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9k50jgrhc4f9824vf8ony74rw
+// static inline point mid_point(point p, point q)
+public static Object mid_point(Object... arg) {
+UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2;
+UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 59c4f7im0ftyowhnzzq2v9o1x
+// static inline pointf mid_pointf(pointf p, pointf q)
+public static Object mid_pointf(Object... arg) {
+UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.;
+UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 5r18p38gisvcx3zsvbb9saixx
+// static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+public static Object interpolate_pointf(Object... arg) {
+UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r;
+UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x);
+UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y);
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bxzrv2ghq04qk5cbyy68s4mol
+// static inline point exch_xy(point p)
+public static Object exch_xy(Object... arg) {
+UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9lt3e03tac6h6sydljrcws8fd
+// static inline pointf exch_xyf(pointf p)
+public static Object exch_xyf(Object... arg) {
+UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8l9qhieokthntzdorlu5zn29b
+// static inline box box_bb(box b0, box b1)
+public static Object box_bb(Object... arg) {
+UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 clws9h3bbjm0lw3hexf8nl4c4
+// static inline boxf boxf_bb(boxf b0, boxf b1)
+public static Object boxf_bb(Object... arg) {
+UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bit6ycxo1iqd2al92y8gkzlvb
+// static inline box box_intersect(box b0, box b1)
+public static Object box_intersect(Object... arg) {
+UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8gfybie7k6pgb3o1a6llgpwng
+// static inline boxf boxf_intersect(boxf b0, boxf b1)
+public static Object boxf_intersect(Object... arg) {
+UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 7z8j2quq65govaaejrz7b4cvb
+// static inline int box_overlap(box b0, box b1)
+public static Object box_overlap(Object... arg) {
+UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4z0suuut2acsay5m8mg9dqjdu
+// static inline int boxf_overlap(boxf b0, boxf b1)
+public static Object boxf_overlap(Object... arg) {
+UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 dd34swz5rmdgu3a2np2a4h1dy
+// static inline int box_contains(box b0, box b1)
+public static Object box_contains(Object... arg) {
+UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8laj1bspbu2i1cjd9upr7xt32
+// static inline int boxf_contains(boxf b0, boxf b1)
+public static Object boxf_contains(Object... arg) {
+UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4wf5swkz24xx51ja2dynbycu1
+// static inline pointf perp (pointf p)
+public static Object perp(Object... arg) {
+UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6dtlpzv4mvgzb9o0b252yweuv
+// static inline pointf scale (double c, pointf p)
+public static Object scale(Object... arg) {
+UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x;
+UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 3f1re3nfkhxwjjb90kppwuupr
+// static void renewlist(elist * L)
+public static void renewlist(elist L) {
+ENTERING("3f1re3nfkhxwjjb90kppwuupr","renewlist");
+try {
+ int i;
+ for (i = L.getInt("size"); i >= 0; i--)
+ L.getArrayOfPtr("list").plus(i).setPtr(null);
+ L.setInt("size", 0);
+} finally {
+LEAVING("3f1re3nfkhxwjjb90kppwuupr","renewlist");
+}
+}
+
+
+
+
+//3 1xov2qhuxj1f9nbzu3xsa6679
+// static void cleanup1(graph_t * g)
+public static void cleanup1(Agraph_s g) {
+ENTERING("1xov2qhuxj1f9nbzu3xsa6679","cleanup1");
+try {
+ Agnode_s n;
+ Agedge_s e, f;
+ int c;
+ for (c = 0; c < GD_comp(g).size; c++) {
+ GD_nlist(g, GD_comp(g).getFromList(c));
+ for (n = GD_nlist(g); n!=null; n = ND_next(n)) {
+ renewlist(ND_in(n).amp());
+ renewlist(ND_out(n).amp());
+ ND_mark(n, 0);
+ }
+ }
+ for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) {
+ for (e = agfstout(g, n); e!=null; e = agnxtout(g, e)) {
+ f = ED_to_virt(e);
+ /* Null out any other references to f to make sure we don't
+ * handle it a second time. For example, parallel multiedges
+ * share a virtual edge.
+ */
+ if (f!=null && (EQ(e, ED_to_orig(f)))) {
+ Agedge_s e1, f1;
+ Agnode_s n1;
+ for (n1 = agfstnode(g); n1!=null; n1 = agnxtnode(g, n1)) {
+ for (e1 = agfstout(g, n1); e1!=null; e1 = agnxtout(g, e1)) {
+ if (NEQ(e, e1)) {
+ f1 = ED_to_virt(e1);
+ if (f1!=null && EQ(f, f1)) {
+ ED_to_virt(e1, null);
+ }
+ }
+ }
+ }
+ Memory.free(f.getStruct("base").getPtr("data"));
+ Memory.free(f);
+ }
+ ED_to_virt(e, null);
+ }
+ }
+ GD_comp(g).resetList();
+ GD_comp(g).size = 0;
+} finally {
+LEAVING("1xov2qhuxj1f9nbzu3xsa6679","cleanup1");
+}
+}
+
+
+
+
+//3 bxjf5g7g953ii1hfodl1j0y4u
+// static void edgelabel_ranks(graph_t * g)
+public static void edgelabel_ranks(Agraph_s g) {
+ENTERING("bxjf5g7g953ii1hfodl1j0y4u","edgelabel_ranks");
+try {
+ Agnode_s n;
+ Agedge_s e;
+ if ((GD_has_labels(g) & (1 << 0))!=0) {
+ for (n = agfstnode(g); n!=null; n = agnxtnode(g, n))
+ for (e = agfstout(g, n); e!=null; e = agnxtout(g, e))
+ ED_minlen(e, ED_minlen(e) * 2);
+ GD_ranksep(g, (GD_ranksep(g) + 1) / 2);
+ }
+} finally {
+LEAVING("bxjf5g7g953ii1hfodl1j0y4u","edgelabel_ranks");
+}
+}
+
+
+
+
+//3 9kjpoxcxoy3nhqd9rflwclo7c
+// static void collapse_rankset(graph_t * g, graph_t * subg, int kind)
+public static Object collapse_rankset(Object... arg) {
+UNSUPPORTED("59dl3yc4jbcy2pb7j1njhlybi"); // static void
+UNSUPPORTED("8hizp29cxh1rnp84yrlv4nl8x"); // collapse_rankset(graph_t * g, graph_t * subg, int kind)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("5yrhx4blosxo5xnc1nh1kzhfs"); // node_t *u, *v;
+UNSUPPORTED("nbvmqthk0lqbm00ekylf0l0g"); // u = v = agfstnode(subg);
+UNSUPPORTED("5q27ub494lpst2s18bizunri0"); // if (u) {
+UNSUPPORTED("97vrl7utckj5ct78d81xyhhjl"); // ND_ranktype(u) = kind;
+UNSUPPORTED("99ruvdyom1mcyir0v7i8zq8eh"); // while ((v = agnxtnode(subg, v))) {
+UNSUPPORTED("7f9cf0wfrirgdoty4qy5pfuj9"); // UF_union(u, v);
+UNSUPPORTED("5jt25she9etuqjk6nrkrt3059"); // ND_ranktype(v) = ND_ranktype(u);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("9ty5l2g646lrkxz43tcnhcsk8"); // switch (kind) {
+UNSUPPORTED("b8vgbvwzllfs4lrqmmqyr1spk"); // case 2:
+UNSUPPORTED("1640m8as34e90xhvvtl877cmo"); // case 3:
+UNSUPPORTED("2crlxhvtrgd5ohsriopqywv1m"); // if (GD_minset(g) == NULL)
+UNSUPPORTED("9py54j3v52y5qevrsi1omdoq7"); // GD_minset(g) = u;
+UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else
+UNSUPPORTED("1cqwn2xb41g0dsm2oltj15dsd"); // GD_minset(g) = UF_union(GD_minset(g), u);
+UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break;
+UNSUPPORTED("495y0cnvj5vci19wsufg88rrq"); // case 4:
+UNSUPPORTED("1wjv2f7dql1ddky1us3a7q5jq"); // case 5:
+UNSUPPORTED("1myv9cwrp9n535g9xsalgmg7n"); // if (GD_maxset(g) == NULL)
+UNSUPPORTED("45gr04d25a1qxrh4hm1kiip5v"); // GD_maxset(g) = u;
+UNSUPPORTED("5c97f6vfxny0zz35l2bu4maox"); // else
+UNSUPPORTED("d5a4ohz8nh8xso8ovij23zsxi"); // GD_maxset(g) = UF_union(GD_maxset(g), u);
+UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("9ty5l2g646lrkxz43tcnhcsk8"); // switch (kind) {
+UNSUPPORTED("1640m8as34e90xhvvtl877cmo"); // case 3:
+UNSUPPORTED("j5ay8vao16zse2bq0etmlhua"); // ND_ranktype(GD_minset(g)) = kind;
+UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break;
+UNSUPPORTED("1wjv2f7dql1ddky1us3a7q5jq"); // case 5:
+UNSUPPORTED("9dtrubjv4hiv1k3dq24skxdb8"); // ND_ranktype(GD_maxset(g)) = kind;
+UNSUPPORTED("ai3czg6gaaxspsmndknpyvuiu"); // break;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 65qi5f0bxp6d6vahhlcolpk88
+// static int rank_set_class(graph_t * g)
+public static int rank_set_class(Agraph_s g) {
+ENTERING("65qi5f0bxp6d6vahhlcolpk88","rank_set_class");
+try {
+ CString name[] = new CString[] { new CString("same"), new CString("min"), new CString("source"), new CString("max"), new CString("sink"), null };
+ int class_[] = new int[] { 1, 2, 3, 4, 5, 0 };
+ int val;
+ if (is_cluster(g))
+ return 7;
+ val = maptoken(agget(g, new CString("rank")), name, class_);
+ GD_set_type(g, val);
+ return val;
+} finally {
+LEAVING("65qi5f0bxp6d6vahhlcolpk88","rank_set_class");
+}
+}
+
+
+
+
+//3 5189iviqj57iztftckz86y6jj
+// static int make_new_cluster(graph_t * g, graph_t * subg)
+public static int make_new_cluster(Agraph_s g, Agraph_s subg) {
+ENTERING("5189iviqj57iztftckz86y6jj","make_new_cluster");
+try {
+ int cno;
+ GD_n_cluster(g, GD_n_cluster(g)+1);
+ cno = GD_n_cluster(g);
+ GD_clust(g, ZALLOC(cno + 1, GD_clust(g), Agraph_s.class, GD_n_cluster(g)));
+ GD_clust(g).plus(cno).setPtr(subg);
+ do_graph_label(subg);
+ return cno;
+} finally {
+LEAVING("5189iviqj57iztftckz86y6jj","make_new_cluster");
+}
+}
+
+
+
+
+//3 9lvm2ufqjzl2bsbpo0zg9go58
+// static void node_induce(graph_t * par, graph_t * g)
+public static void node_induce(Agraph_s par, Agraph_s g) {
+ENTERING("9lvm2ufqjzl2bsbpo0zg9go58","node_induce");
+try {
+ Agnode_s n, nn;
+ Agedge_s e;
+ int i;
+ LOG2("node_induce");
+ /* enforce that a node is in at most one cluster at this level */
+ for (n = agfstnode(g); n!=null; n = nn) {
+ nn = agnxtnode(g, n);
+ if (ND_ranktype(n)!=0) {
+ agdelete(g, n);
+ continue;
+ }
+ for (i = 1; i < GD_n_cluster(par); i++)
+ if (agcontains((Agraph_s) GD_clust(par).plus(i).getPtr(), n))
+ break;
+ if (i < GD_n_cluster(par))
+ agdelete(g, n);
+ ND_clust(n, null);
+ }
+ for (n = agfstnode(g); n!=null; n = agnxtnode(g, n)) {
+ for (e = agfstout(dot_root(g), n); e!=null; e = agnxtout(dot_root(g), e)) {
+ if (agcontains(g, aghead(e)))
+ agsubedge(g,e,true);
+ }
+ }
+} finally {
+LEAVING("9lvm2ufqjzl2bsbpo0zg9go58","node_induce");
+}
+}
+
+
+
+
+//3 650rxyqioihwhhqkex61prwfs
+// void dot_scan_ranks(graph_t * g)
+public static Object dot_scan_ranks(Object... arg) {
+UNSUPPORTED("347dderd02mvlozoheqo4ejwo"); // void
+UNSUPPORTED("3qe2zolxii33gr1krcjkgygwm"); // dot_scan_ranks(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("dkbxmqzr28yu8rswd5vubd3ha"); // node_t *n, *leader = NULL;
+UNSUPPORTED("65ovv0jsp2kemyp7179cotrqh"); // GD_minrank(g) = MAXSHORT;
+UNSUPPORTED("4rx9wnlw0uumqfzcjtyg9rpfl"); // GD_maxrank(g) = -1;
+UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
+UNSUPPORTED("68vv0lam9vxeuk3fg60ad5w6g"); // if (GD_maxrank(g) < ND_rank(n))
+UNSUPPORTED("2v65dy95gqvsnppoelwwl8ayh"); // GD_maxrank(g) = ND_rank(n);
+UNSUPPORTED("3ozq6tqfxcegom34qkyrrxnfg"); // if (GD_minrank(g) > ND_rank(n))
+UNSUPPORTED("duyud2jy9uf1rbcis84c3lsj6"); // GD_minrank(g) = ND_rank(n);
+UNSUPPORTED("5j9c428shih0wjw2salkxw0qm"); // if (leader == NULL)
+UNSUPPORTED("73jlqlf2bn3kx7i020menpfcw"); // leader = n;
+UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else {
+UNSUPPORTED("bwqhlzu5ifbhdg1jral42ycdx"); // if (ND_rank(n) < ND_rank(leader))
+UNSUPPORTED("7h663p7xpn4qn3l6bs6vxze7i"); // leader = n;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("5j1zsofmtglx1esxwbstti1un"); // GD_leader(g) = leader;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 2rbs5deyvlh5s7lkhv6zouqbe
+// static void cluster_leader(graph_t * clust)
+public static void cluster_leader(Agraph_s clust) {
+ENTERING("2rbs5deyvlh5s7lkhv6zouqbe","cluster_leader");
+try {
+ Agnode_s leader, n;
+ int maxrank = 0;
+ /* find number of ranks and select a leader */
+ leader = null;
+ for (n = GD_nlist(clust); n!=null; n = ND_next(n)) {
+ if ((ND_rank(n) == 0) && (ND_node_type(n) == 0))
+ leader = n;
+ if (maxrank < ND_rank(n))
+ maxrank = ND_rank(n);
+ }
+ assert(leader != null);
+ GD_leader(clust, leader);
+ for (n = agfstnode(clust); n!=null; n = agnxtnode(clust, n)) {
+ //assert((ND_UF_size(n) <= 1) || (n == leader));
+ UF_union(n, leader);
+ ND_ranktype(n, 7);
+ }
+} finally {
+LEAVING("2rbs5deyvlh5s7lkhv6zouqbe","cluster_leader");
+}
+}
+
+
+
+
+//3 f3sl627dqmre3kru883bpdxc3
+// static void collapse_cluster(graph_t * g, graph_t * subg)
+public static void collapse_cluster(Agraph_s g, Agraph_s subg) {
+ENTERING("f3sl627dqmre3kru883bpdxc3","collapse_cluster");
+try {
+ if (GD_parent(subg)!=null) {
+ return;
+ }
+ GD_parent(subg, g);
+ node_induce(g, subg);
+ if (agfstnode(subg) == null)
+ return;
+ make_new_cluster(g, subg);
+ if (Z.z().CL_type == 100) {
+ dot1_rank(subg, null);
+ cluster_leader(subg);
+ } else
+UNSUPPORTED("1os84mtyrb110i4sd8bdjrwk"); // dot_scan_ranks(subg);
+} finally {
+LEAVING("f3sl627dqmre3kru883bpdxc3","collapse_cluster");
+}
+}
+
+
+
+
+//3 din4qnipewrwnelaimzvlplft
+// static void collapse_sets(graph_t *rg, graph_t *g)
+public static void collapse_sets(Agraph_s rg, Agraph_s g) {
+ENTERING("din4qnipewrwnelaimzvlplft","collapse_sets");
+try {
+ int c;
+ Agraph_s subg;
+ for (subg = agfstsubg(g); subg!=null; subg = agnxtsubg(subg)) {
+ c = rank_set_class(subg);
+ if (c!=0) {
+ if ((c == 7) && Z.z().CL_type == 100)
+ collapse_cluster(rg, subg);
+ else
+ collapse_rankset(rg, subg, c);
+ }
+ else collapse_sets(rg, subg);
+ }
+} finally {
+LEAVING("din4qnipewrwnelaimzvlplft","collapse_sets");
+}
+}
+
+
+
+
+//3 5n9mgh7vlru5mb1j9oienvbvs
+// static void find_clusters(graph_t * g)
+public static Object find_clusters(Object... arg) {
+UNSUPPORTED("59dl3yc4jbcy2pb7j1njhlybi"); // static void
+UNSUPPORTED("cdsgmo50taekqgk95mfn25930"); // find_clusters(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("8uujemixuhlf040icq3zsh7j8"); // graph_t *subg;
+UNSUPPORTED("39msf2samfrjyh2h1a0nh0bnq"); // for (subg = agfstsubg(dot_root(g)); subg; subg = agnxtsubg(subg)) {
+UNSUPPORTED("zmexivcsx1b4oppz6cjwhzd9"); // if (GD_set_type(subg) == 7)
+UNSUPPORTED("xqwyd1xyo86onxfw4s7p8at4"); // collapse_cluster(g, subg);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 12fw0esv4unfin6waf9mknc1o
+// static void set_minmax(graph_t * g)
+public static void set_minmax(Agraph_s g) {
+ENTERING("12fw0esv4unfin6waf9mknc1o","set_minmax");
+try {
+ int c;
+ GD_minrank(g, GD_minrank(g) + ND_rank(GD_leader(g)));
+ GD_maxrank(g, GD_maxrank(g) + ND_rank(GD_leader(g)));
+ for (c = 1; c <= GD_n_cluster(g); c++)
+ set_minmax((Agraph_s) GD_clust(g).plus(c).getPtr());
+} finally {
+LEAVING("12fw0esv4unfin6waf9mknc1o","set_minmax");
+}
+}
+
+
+
+
+//3 3bcr1748gqnu8ogb73jeja7ly
+// static point minmax_edges(graph_t * g)
+public static __struct__<point> minmax_edges(Agraph_s g) {
+// WARNING!! STRUCT
+return minmax_edges_w_(g).copy();
+}
+private static __struct__<point> minmax_edges_w_(Agraph_s g) {
+ENTERING("3bcr1748gqnu8ogb73jeja7ly","minmax_edges");
+try {
+ Agnode_s n;
+ Agedge_s e;
+ final __struct__<point> slen = JUtils.from(point.class);
+ slen.setInt("x", 0);
+ slen.setInt("y", 0);
+ if ((GD_maxset(g) == null) && (GD_minset(g) == null))
+ return slen;
+UNSUPPORTED("d0tnzm7aw9504y1w1oqoesw64"); // if ((((Agraphinfo_t*)(((Agobj_t*)(g))->data))->minset) != NULL)
+UNSUPPORTED("9esfh1bqntzgyk7zcq16k9f96"); // (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->minset) = UF_find((((Agraphinfo_t*)(((Agobj_t*)(g))->data))->minset));
+UNSUPPORTED("2szhe8u8hvuy7p23r4p4zcb83"); // if ((((Agraphinfo_t*)(((Agobj_t*)(g))->data))->maxset) != NULL)
+UNSUPPORTED("tufrhwafgfvg5vepfqo9dpwg"); // (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->maxset) = UF_find((((Agraphinfo_t*)(((Agobj_t*)(g))->data))->maxset));
+UNSUPPORTED("3num56yubfb33g0m56jntiy0x"); // if ((n = (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->maxset))) {
+UNSUPPORTED("d60rrtpfeuylcbp2490sojfjq"); // slen.y = ((((Agnodeinfo_t*)(((Agobj_t*)((((Agraphinfo_t*)(((Agobj_t*)(g))->data))->maxset)))->data))->ranktype) == 5);
+UNSUPPORTED("79ls52ss65f22xrsubkcofzz"); // while ((e = (((Agnodeinfo_t*)(((Agobj_t*)(n))->data))->out).list[0])) {
+UNSUPPORTED("chd9prkphze2z32e98mbxhqyd"); // assert(((((((Agobj_t*)(e))->tag).objtype) == 2? (e): ((e)-1))->node) == UF_find(((((((Agobj_t*)(e))->tag).objtype) == 2? (e): ((e)-1))->node)));
+UNSUPPORTED("829yx3b7rjn7ptz89mz4dj5yo"); // reverse_edge(e);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("8us4psjv2ebkgcp54fvjbuhj8"); // if ((n = (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->minset))) {
+UNSUPPORTED("7uri9lp9wjgo20ram4gfo974w"); // slen.x = ((((Agnodeinfo_t*)(((Agobj_t*)((((Agraphinfo_t*)(((Agobj_t*)(g))->data))->minset)))->data))->ranktype) == 3);
+UNSUPPORTED("5up69q1rp9ts32jvunwg9hlrr"); // while ((e = (((Agnodeinfo_t*)(((Agobj_t*)(n))->data))->in).list[0])) {
+UNSUPPORTED("4t476gsg37fhfa2fdrokupx2c"); // assert(((((((Agobj_t*)(e))->tag).objtype) == 3? (e): ((e)+1))->node) == UF_find(((((((Agobj_t*)(e))->tag).objtype) == 3? (e): ((e)+1))->node)));
+UNSUPPORTED("829yx3b7rjn7ptz89mz4dj5yo"); // reverse_edge(e);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("erz19oifq072tdfzgz6dxa9i4"); // return slen;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+} finally {
+LEAVING("3bcr1748gqnu8ogb73jeja7ly","minmax_edges");
+}
+}
+
+
+
+
+//3 1rmlm1wo3t94wyet9rlwrmith
+// static int minmax_edges2(graph_t * g, point slen)
+public static boolean minmax_edges2(Agraph_s g, final __struct__<point> slen) {
+// WARNING!! STRUCT
+return minmax_edges2_w_(g, slen.copy());
+}
+private static boolean minmax_edges2_w_(Agraph_s g, final __struct__<point> slen) {
+ENTERING("1rmlm1wo3t94wyet9rlwrmith","minmax_edges2");
+try {
+ Agnode_s n;
+ Agedge_s e = null;
+ if ((GD_maxset(g)!=null) || (GD_minset(g)!=null)) {
+UNSUPPORTED("attp4bsjqe99xnhi7lr7pszar"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
+UNSUPPORTED("8y47p29z0c2f1xpkrsb8w8re8"); // if (n != UF_find(n))
+UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue;
+UNSUPPORTED("49yt5gs5xlk2yzmiulvp7iqrd"); // if (((((Agnodeinfo_t*)(((Agobj_t*)(n))->data))->out).size == 0) && (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->maxset) && (n != (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->maxset))) {
+UNSUPPORTED("9ksut17itonzpk3hp57jn4d1s"); // e = virtual_edge(n, (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->maxset), NULL);
+UNSUPPORTED("7dlot3nkpploeywkumjt3erop"); // (((Agedgeinfo_t*)(((Agobj_t*)(e))->data))->minlen) = slen.y;
+UNSUPPORTED("5ddkb181unkbg63gxqjx85fzq"); // (((Agedgeinfo_t*)(((Agobj_t*)(e))->data))->weight) = 0;
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("5b66s1jsuwe7l2e8p6o1xpnab"); // if (((((Agnodeinfo_t*)(((Agobj_t*)(n))->data))->in).size == 0) && (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->minset) && (n != (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->minset))) {
+UNSUPPORTED("c00g90uqqonkk08nncvi45c8f"); // e = virtual_edge((((Agraphinfo_t*)(((Agobj_t*)(g))->data))->minset), n, NULL);
+UNSUPPORTED("cxdsqlq2h35nyz65uc4eifchp"); // (((Agedgeinfo_t*)(((Agobj_t*)(e))->data))->minlen) = slen.x;
+UNSUPPORTED("5ddkb181unkbg63gxqjx85fzq"); // (((Agedgeinfo_t*)(((Agobj_t*)(e))->data))->weight) = 0;
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+ }
+ return (e != null);
+} finally {
+LEAVING("1rmlm1wo3t94wyet9rlwrmith","minmax_edges2");
+}
+}
+
+
+
+
+//3 3vpthwso788idvycelpnqijys
+// void rank1(graph_t * g)
+public static void rank1(Agraph_s g) {
+ENTERING("3vpthwso788idvycelpnqijys","rank1");
+try {
+ int maxiter = Integer.MAX_VALUE;
+ int c;
+ CString s;
+ if ((s = agget(g, new CString("nslimit1")))!=null)
+UNSUPPORTED("9tp2zk1tsr4ce9rwsr0is9u3o"); // maxiter = atof(s) * agnnodes(g);
+ for (c = 0; c < GD_comp(g).size; c++) {
+ //GD_nlist(g, GD_comp(g).getArrayOfPtr("list").plus(c).getPtr());
+ GD_nlist(g, GD_comp(g).getFromList(c));
+ rank(g, (GD_n_cluster(g) == 0 ? 1 : 0), maxiter); /* TB balance */
+ }
+} finally {
+LEAVING("3vpthwso788idvycelpnqijys","rank1");
+}
+}
+
+
+
+
+//3 cdh8wnb99v90dy6efpbzmrjix
+// static void expand_ranksets(graph_t * g, aspect_t* asp)
+public static void expand_ranksets(Agraph_s g, aspect_t asp) {
+ENTERING("cdh8wnb99v90dy6efpbzmrjix","expand_ranksets");
+try {
+ int c;
+ Agnode_s n, leader;
+ if ((n = agfstnode(g))!=null) {
+ GD_minrank(g, MAXSHORT);
+ GD_maxrank(g, -1);
+ while (n!=null) {
+ leader = UF_find(n);
+ /* The following works because ND_rank(n) == 0 if n is not in a
+ * cluster, and ND_rank(n) = the local rank offset if n is in
+ * a cluster. */
+ if (NEQ(leader, n) && (N(asp) || (ND_rank(n) == 0)))
+ ND_rank(n, ND_rank(n) + ND_rank(leader));
+ if (GD_maxrank(g) < ND_rank(n))
+ GD_maxrank(g, ND_rank(n));
+ if (GD_minrank(g) > ND_rank(n))
+ GD_minrank(g, ND_rank(n));
+ if (ND_ranktype(n)!=0 && (ND_ranktype(n) != 6))
+ UF_singleton(n);
+ n = agnxtnode(g, n);
+ }
+ if (EQ(g, dot_root(g))) {
+ if (Z.z().CL_type == 100) {
+ for (c = 1; c <= GD_n_cluster(g); c++)
+ set_minmax((Agraph_s) GD_clust(g).plus(c).getPtr());
+ } else {
+ find_clusters(g);
+ }
+ }
+ } else {
+ GD_maxrank(g, 0);
+ GD_minrank(g, 0);
+ }
+} finally {
+LEAVING("cdh8wnb99v90dy6efpbzmrjix","expand_ranksets");
+}
+}
+
+
+
+
+//3 2o4rmb4o6f6zh46ak3se91rwr
+// static void dot1_rank(graph_t * g, aspect_t* asp)
+public static void dot1_rank(Agraph_s g, aspect_t asp) {
+ENTERING("2o4rmb4o6f6zh46ak3se91rwr","dot1_rank");
+try {
+ final __struct__<point> p = JUtils.from(point.class);
+ edgelabel_ranks(g);
+ if (asp!=null) {
+UNSUPPORTED("kh7e20nqwuserrnpf3zpvuyl"); // init_UF_size(g);
+UNSUPPORTED("d88j5oswhz0d3yvd4wlvxohmu"); // initEdgeTypes(g);
+ }
+ collapse_sets(g,g);
+ /*collapse_leaves(g); */
+ class1_(g);
+ p.___(minmax_edges(g));
+ decompose(g, 0);
+ if (asp!=null && ((GD_comp(g).getInt("size") > 1)||(GD_n_cluster(g) > 0))) {
+UNSUPPORTED("evcjt85irnaa02v8cam07i009"); // asp->badGraph = 1;
+UNSUPPORTED("45nxv6kczal9hnytkfcyt2jk8"); // asp = NULL;
+ }
+ acyclic_(g);
+ if (minmax_edges2(g, p))
+UNSUPPORTED("800vpyk6y4hcx2txwyrr2boxu"); // decompose(g, 0);
+ if (asp!=null)
+ rank3(g, asp);
+ else
+ rank1(g);
+ expand_ranksets(g, asp);
+ cleanup1(g);
+} finally {
+LEAVING("2o4rmb4o6f6zh46ak3se91rwr","dot1_rank");
+}
+}
+
+
+
+
+//3 asyfujgwqa407ffvqn5psbtsc
+// void dot_rank(graph_t * g, aspect_t* asp)
+public static void dot_rank(Agraph_s g, aspect_t asp) {
+ENTERING("asyfujgwqa407ffvqn5psbtsc","dot_rank");
+try {
+ if (agget (g, new CString("newrank"))!=null) {
+ GD_flags(g, GD_flags(g) | (1 << 4));
+ dot2_rank (g, asp);
+ }
+ else
+ dot1_rank (g, asp);
+ //if (Verbose)
+ //fprintf (stderr, "Maxrank = %d, minrank = %d\n", (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->maxrank), (((Agraphinfo_t*)(((Agobj_t*)(g))->data))->minrank));
+} finally {
+LEAVING("asyfujgwqa407ffvqn5psbtsc","dot_rank");
+}
+}
+
+
+
+
+//3 cdncou6d2ng5i48rd1mk2cpnw
+// int is_cluster(graph_t * g)
+public static boolean is_cluster(Agraph_s g) {
+ENTERING("cdncou6d2ng5i48rd1mk2cpnw","is_cluster");
+try {
+ return (strncmp(agnameof(g), new CString("cluster"), 7) == 0);
+} finally {
+LEAVING("cdncou6d2ng5i48rd1mk2cpnw","is_cluster");
+}
+}
+
+
+
+
+//3 29qzn29glqnhg14z5cwt9i8ds
+// static void set_parent(graph_t* g, graph_t* p)
+public static Object set_parent(Object... arg) {
+UNSUPPORTED("blcrnfwfdmb15y0sduplfd1kd"); // static void set_parent(graph_t* g, graph_t* p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("761elco9es28q1el1h87c9q8w"); // GD_parent(g) = p;
+UNSUPPORTED("84dx27r05ns2c0pm7idum25td"); // make_new_cluster(p, g);
+UNSUPPORTED("65op19ofyxj4vywwg8hovy2yh"); // node_induce(p, g);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 3qlca4afaxtwu0r2v22ccpfy9
+// static int is_empty(graph_t * g)
+public static Object is_empty(Object... arg) {
+UNSUPPORTED("1bkrdpgwmb75nr2g9ooqfc79r"); // static int is_empty(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("8bgakhvkt8exvi70zpvdvwrt4"); // return (!agfstnode(g));
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 sxmrpf4e3wi4vzeiu486heyw
+// static int is_a_strong_cluster(graph_t * g)
+public static Object is_a_strong_cluster(Object... arg) {
+UNSUPPORTED("251zndmdq92kg3zmfr3akrrmn"); // static int is_a_strong_cluster(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("ecz4e03zumggc8tfymqvirexq"); // int rv;
+UNSUPPORTED("9l9qe4o3ak62d2r6cbq90e5g"); // char *str = agget(g, "compact");
+UNSUPPORTED("5zgcjj66562k7c4z26hmps9jr"); // /* rv = mapBool((str), TRUE); */
+UNSUPPORTED("7k6ls7carz5knwiocbejouapm"); // rv = mapBool((str), 0);
+UNSUPPORTED("v7vqc9l7ge2bfdwnw11z7rzi"); // return rv;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 954bo7mrh993f96ujb8u3e8vt
+// static int rankset_kind(graph_t * g)
+public static Object rankset_kind(Object... arg) {
+UNSUPPORTED("5vyg261oak77cq7e9dmvw2omc"); // static int rankset_kind(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("70l71erfhd26e1u7dnnxpa6i"); // char *str = agget(g, "rank");
+UNSUPPORTED("4ml2m315k80oi1eww739kxwgi"); // if (str && str[0]) {
+UNSUPPORTED("7j0qc9ibr6niawo611kvm2swb"); // if (!strcmp(str, "min"))
+UNSUPPORTED("avnuwo0ld6vqw4bdve4ku0kwr"); // return 2;
+UNSUPPORTED("8q0yyecb20k2nm2qnluagpkcv"); // if (!strcmp(str, "source"))
+UNSUPPORTED("1xt8eg4imiwilo2bv2i5shg7g"); // return 3;
+UNSUPPORTED("7dkmgopul9nxw7arr5odhh641"); // if (!strcmp(str, "max"))
+UNSUPPORTED("ajqfmduyeyu16131ii3itnjx7"); // return 4;
+UNSUPPORTED("4f7keu82iifj10rf0thee5c4s"); // if (!strcmp(str, "sink"))
+UNSUPPORTED("f45x5jzpirzixrsp3utlgrddo"); // return 5;
+UNSUPPORTED("kjtw0fdz1jophwulunsrgzdb"); // if (!strcmp(str, "same"))
+UNSUPPORTED("btmwubugs9vkexo4yb7a5nqel"); // return 1;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("ds4c38px5ikyzcv8pbtfcfg8h"); // return 6;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 ej4vtw2e6g22jzlypo03buuob
+// static int is_nonconstraint(edge_t * e)
+public static Object is_nonconstraint(Object... arg) {
+UNSUPPORTED("cdj60nbfp2uc9emgj9bb9tuq4"); // static int is_nonconstraint(edge_t * e)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("5bdi9u1cut03m2rbxpkmjg38w"); // char *constr;
+UNSUPPORTED("ipmkcv3n8rnco04rgte3qrlh"); // if (E_constr && (constr = agxget(e, E_constr))) {
+UNSUPPORTED("cnlkffmn4nysfcmoyktn3wvrx"); // if (constr[0] && mapbool(constr) == 0)
+UNSUPPORTED("9qhn9m3123s8n6wwxjfo8awlm"); // return NOT(0);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8pb7znv8q3ikfulus8sprsrb8
+// static node_t *find(node_t * n)
+public static Object find(Object... arg) {
+UNSUPPORTED("420nqb6oiuhh8qfg7ick8eb5j"); // static node_t *find(node_t * n)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("dxloerh79kcplsvqy37g3kwx1"); // node_t *set;
+UNSUPPORTED("ch7ucg4bhoyhb0yswbbtjy53"); // if ((set = ND_set(n))) {
+UNSUPPORTED("e20g6f3inc2t1acfqffb0ksqe"); // if (set != n)
+UNSUPPORTED("3lalmwvgf54uou021ltj0hfqg"); // set = ND_set(n) = find(set);
+UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else
+UNSUPPORTED("45wb5d7uba8g13ojkskeug5v2"); // set = ND_set(n) = n;
+UNSUPPORTED("d5jffopzvq1b1jnhb3jadtkkb"); // return set;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 tgndl91vjf2dvnepj15uye32
+// static node_t *union_one(node_t * leader, node_t * n)
+public static Object union_one(Object... arg) {
+UNSUPPORTED("bk1ys5rvc0fqcssw437mw03pk"); // static node_t *union_one(node_t * leader, node_t * n)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("vkwoakpy0gnbvzgy8gprpluu"); // if (n)
+UNSUPPORTED("879p5fay2s7f829lo6qaxs62y"); // return (ND_set(find(n)) = find(leader));
+UNSUPPORTED("div10atae09n36x269sl208r1"); // else
+UNSUPPORTED("o1psslvh23yuu288xx1nzbv6"); // return leader;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 1ku7zqljp4yk6j8pqxa19ko4u
+// static node_t *union_all(graph_t * g)
+public static Object union_all(Object... arg) {
+UNSUPPORTED("1bddf3dbho07f9di3ae5tdn2z"); // static node_t *union_all(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("d5wzfazsul6ns71kurzu097zq"); // node_t *n, *leader;
+UNSUPPORTED("42x5vqk9aw9a2ld3duvpmp7u9"); // n = agfstnode(g);
+UNSUPPORTED("b23lxt0h34yyivnau77kavofl"); // if (!n)
+UNSUPPORTED("bp96fem54xcxrw16cmnlpell9"); // return n;
+UNSUPPORTED("c7r16vtue9uiodzk7n9ybdegz"); // leader = find(n);
+UNSUPPORTED("1azt0yldbuvzvyhftheine5bv"); // while ((n = agnxtnode(g, n)))
+UNSUPPORTED("aygpegbyw6isjunzjiq2efa8e"); // union_one(leader, n);
+UNSUPPORTED("d2vvjehoyl5rcjodzjl8q0xne"); // return leader;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 dehfujiq2i24w0y9qcoq88gbd
+// static void compile_samerank(graph_t * ug, graph_t * parent_clust)
+public static Object compile_samerank(Object... arg) {
+UNSUPPORTED("52xc1gml0ynibrpu4r03l9cs"); // static void compile_samerank(graph_t * ug, graph_t * parent_clust)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("5prtalowcftfpc3phfgtdwxe1"); // graph_t *s; /* subgraph being scanned */
+UNSUPPORTED("6rya07j39ddlbnek0cawgbdxq"); // graph_t *clust; /* cluster that contains the rankset */
+UNSUPPORTED("d5wzfazsul6ns71kurzu097zq"); // node_t *n, *leader;
+UNSUPPORTED("3j62rndf411nak99bxbvwogwg"); // if (is_empty(ug))
+UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return;
+UNSUPPORTED("116sd790xqr0sm9prs44dhdi9"); // if (is_a_cluster(ug)) {
+UNSUPPORTED("anfjvlosf3592vmzm64wp9ukv"); // clust = ug;
+UNSUPPORTED("a4nj79aw8gc4rsc6qh4h1j3ca"); // if (parent_clust) {
+UNSUPPORTED("2cme4svj15jnccy2a5my2k0vk"); // GD_level(ug) = GD_level(parent_clust) + 1;
+UNSUPPORTED("92dkw1fscsyjwrbkjnllcmsiz"); // set_parent(ug, parent_clust);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else
+UNSUPPORTED("1f3tsi2calw640ylv89zufnqg"); // GD_level(ug) = 0;
+UNSUPPORTED("2lkbqgh2h6urnppaik3zo7ywi"); // } else
+UNSUPPORTED("f2eqknbcu7dkt0mk3aa0nseps"); // clust = parent_clust;
+UNSUPPORTED("2jowbcd45wf29ysq00oxpb9qh"); // /* process subgraphs of this subgraph */
+UNSUPPORTED("cpub3vrdy1soy50cezvowuqp8"); // for (s = agfstsubg(ug); s; s = agnxtsubg(s))
+UNSUPPORTED("6y2vizzx42iva8zf3ndgfxuoo"); // compile_samerank(s, clust);
+UNSUPPORTED("4st45szka4kxyf5afpt9r2lr7"); // /* process this subgraph as a cluster */
+UNSUPPORTED("116sd790xqr0sm9prs44dhdi9"); // if (is_a_cluster(ug)) {
+UNSUPPORTED("4pm26v2jo8qeolmy8246h5zal"); // for (n = agfstnode(ug); n; n = agnxtnode(ug, n)) {
+UNSUPPORTED("dpma84q2zbh96nqex4fp8bs5a"); // if (ND_clust(n) == 0)
+UNSUPPORTED("9ov8qga72kqj7lnxefrlneehb"); // ND_clust(n) = ug;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("b6vj39735t21yl5ayiouei3ea"); // /* process this subgraph as a rankset */
+UNSUPPORTED("bt28cwea3vaqopki07c2rians"); // switch (rankset_kind(ug)) {
+UNSUPPORTED("33l7a58zp8vj6fuliwdkk2nkn"); // case 3:
+UNSUPPORTED("btl4oqew40wl0bqc9bhe1qshq"); // GD_has_sourcerank(clust) = NOT(0); /* fall through */
+UNSUPPORTED("4u5xz2u3urj13y0aw30fdyup5"); // case 2:
+UNSUPPORTED("9shvnosp4rfl2zcu1mk8mt6k"); // leader = union_all(ug);
+UNSUPPORTED("6o42rb3i5w3jv1861oa077ahy"); // GD_minrep(clust) = union_one(leader, GD_minrep(clust));
+UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break;
+UNSUPPORTED("94bjfk0blg9ugkinwopclju8t"); // case 5:
+UNSUPPORTED("b9tzw03kknh7ged56o6llxdh0"); // GD_has_sinkrank(clust) = NOT(0); /* fall through */
+UNSUPPORTED("7gwyze795m9aa2915n3bou49x"); // case 4:
+UNSUPPORTED("9shvnosp4rfl2zcu1mk8mt6k"); // leader = union_all(ug);
+UNSUPPORTED("dumvmo0mkc9khfmooiadflzuz"); // GD_maxrep(clust) = union_one(leader, GD_maxrep(clust));
+UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break;
+UNSUPPORTED("d0gk15gzj4wz8nv54zbr285hm"); // case 1:
+UNSUPPORTED("9shvnosp4rfl2zcu1mk8mt6k"); // leader = union_all(ug);
+UNSUPPORTED("aukepn75qomcnwetlwyvziwx1"); // /* do we need to record these ranksets? */
+UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break;
+UNSUPPORTED("4ak4rwp0nsvc9n89y3dnvoiy9"); // case 6:
+UNSUPPORTED("6aw91xzjmqvmtdvt1di23af8y"); // break;
+UNSUPPORTED("b7b3qf9gm8yinsl7rq2tcvamg"); // default: /* unrecognized - warn and do nothing */
+UNSUPPORTED("dsg015rva622f29whl6b5ner1"); // agerr(AGWARN, "%s has unrecognized rank=%s", agnameof(ug),
+UNSUPPORTED("7gjdlew6rtq0dsdxc6uyc7v48"); // agget(ug, "rank"));
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("8z2hxrvowojvpioiz41x8djhw"); // /* a cluster may become degenerate */
+UNSUPPORTED("bg6be1cr97nd4blhxwc8577cz"); // if (is_a_cluster(ug) && GD_minrep(ug)) {
+UNSUPPORTED("7z1ki4lb1ja4hai3qi68hlg72"); // if (GD_minrep(ug) == GD_maxrep(ug)) {
+UNSUPPORTED("6d3xnrwrzibz1hajej296nhj4"); // node_t *up = union_all(ug);
+UNSUPPORTED("bisonxzfe0vx9x9xtsvv27rq9"); // GD_minrep(ug) = up;
+UNSUPPORTED("esz48qzeb3f3oomg8wb4drmrn"); // GD_maxrep(ug) = up;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6mzsthkzz214du9ljfc7ijlf3
+// static graph_t *dot_lca(graph_t * c0, graph_t * c1)
+public static Object dot_lca(Object... arg) {
+UNSUPPORTED("egnw42d8jhfdyl5zqlzqffv17"); // static graph_t *dot_lca(graph_t * c0, graph_t * c1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("8qmvk29gersospxrjeukh5zdn"); // while (c0 != c1) {
+UNSUPPORTED("9395225iwl078vpfdl5fz3q1i"); // if (GD_level(c0) >= GD_level(c1))
+UNSUPPORTED("ud0xxtx626m6p44f5ybl28oz"); // c0 = GD_parent(c0);
+UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else
+UNSUPPORTED("1z7wsarh0nlwq4y04yizw1pbj"); // c1 = GD_parent(c1);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("aqd6v9mqxnbx6er4fkhkmhusr"); // return c0;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 7fwe6cym6k60fw6f2gkbftvh8
+// static int is_internal_to_cluster(edge_t * e)
+public static Object is_internal_to_cluster(Object... arg) {
+UNSUPPORTED("esoedecj682cdsbz3i9026zfo"); // static int is_internal_to_cluster(edge_t * e)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("bf7f1i4wj7cvj82os2h0somln"); // graph_t *par, *ct, *ch;
+UNSUPPORTED("pzh3wmhacvb8baamh8d0x2j5"); // ct = ND_clust(agtail(e));
+UNSUPPORTED("1yxzewahgac4khyfwgegotstb"); // ch = ND_clust(aghead(e));
+UNSUPPORTED("c0hxl5pgz9bgngw9cw54a6y8z"); // if (ct == ch)
+UNSUPPORTED("bp2y18pqq5n09006utwifdyxo"); // return NOT(0);
+UNSUPPORTED("b4gos5u06phmhqll71bg7znsl"); // par = dot_lca(ct, ch);
+UNSUPPORTED("32a491a5jyr0gaudx2odlyl1x"); // /* if (par == agroot(par)) */
+UNSUPPORTED("4ugp2o11w5qr2tr0vjcqlm5xu"); // /* return FALSE; */
+UNSUPPORTED("1vb9z2lsj8ote2lis1nzqfq98"); // if ((par == ct) || (par == ch))
+UNSUPPORTED("bp2y18pqq5n09006utwifdyxo"); // return NOT(0);
+UNSUPPORTED("5oxhd3fvp0gfmrmz12vndnjt"); // return 0;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+//1 ca279jzn1n2k40bv7mz55ccx7
+// static node_t* Last_node
+//private static Agnode_s Last_node;
+
+
+//3 6odjfuoywf6x6xpuz14xn1w07
+// static node_t* makeXnode (graph_t* G, char* name)
+public static Object makeXnode(Object... arg) {
+UNSUPPORTED("bpc5db7ozsqpc73t2xl0qmpnr"); // static node_t* makeXnode (graph_t* G, char* name)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("as7pt6rau89ac05ml4zp39xgj"); // node_t *n = agnode(G, name, 1);
+UNSUPPORTED("6b9ymcqm4d2w42w6dvlhb7hio"); // alloc_elist(4, ND_in(n));
+UNSUPPORTED("b0ocdkprm41g10emqffwvovpd"); // alloc_elist(4, ND_out(n));
+UNSUPPORTED("e32lwhe8aj8zbofa5hl91g94x"); // if (Last_node) {
+UNSUPPORTED("ctnbewkujd0gitkeptmdjrc5e"); // ND_prev(n) = Last_node;
+UNSUPPORTED("efpj513jkepv1eb6ehj5cyuqy"); // ND_next(Last_node) = n;
+UNSUPPORTED("c07up7zvrnu2vhzy6d7zcu94g"); // } else {
+UNSUPPORTED("d73xo1uhf9960attqraecy18q"); // ND_prev(n) = NULL;
+UNSUPPORTED("bd7fe5nmcvdfwgbbuzoxzk59n"); // GD_nlist(G) = n;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("7gutgf5zbme88t9ueyzvir9yh"); // Last_node = n;
+UNSUPPORTED("9tl9ztdpfpeb900t5gagch4eg"); // ND_next(n) = NULL;
+UNSUPPORTED("69hc24ic55i66g8tf2ne42327"); // return n;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 cd3kauuz11z03xym1la7ze5e6
+// static void compile_nodes(graph_t * g, graph_t * Xg)
+public static Object compile_nodes(Object... arg) {
+UNSUPPORTED("12jh8m3jnppgzqcx642zkv20x"); // static void compile_nodes(graph_t * g, graph_t * Xg)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("dm6k18yfspisvs0pl8f3kp9j4"); // /* build variables */
+UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n;
+UNSUPPORTED("hibhvgkp511r6u6ips8yb0un"); // Last_node = NULL;
+UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
+UNSUPPORTED("2f2poxq5fr9k7bgerylsq6dkm"); // if (find(n) == n)
+UNSUPPORTED("9xe9wxas5cxrrzpmqtkfavbuj"); // ND_rep(n) = makeXnode (Xg, agnameof(n));
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
+UNSUPPORTED("cfjmkdzc5nj1nbp2ckl0mejra"); // if (ND_rep(n) == 0)
+UNSUPPORTED("2u4sgiv3zkgh3t4r1ksk76oyl"); // ND_rep(n) = ND_rep(find(n));
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 e1guv5kmb9i30k71e66mdxo3y
+// static void merge(edge_t * e, int minlen, int weight)
+public static Object merge(Object... arg) {
+UNSUPPORTED("1npguevtdh47xfz698yahzrqb"); // static void merge(edge_t * e, int minlen, int weight)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("acr0hvlhebqp3iieup5bti0r6"); // ED_minlen(e) = MAX(ED_minlen(e), minlen);
+UNSUPPORTED("eq9oxzgg08304c8ph77144cpu"); // ED_weight(e) += weight;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 59c6dqhr5u2wv75vxz5cgbkui
+// static void strong(graph_t * g, node_t * t, node_t * h, edge_t * orig)
+public static Object strong(Object... arg) {
+UNSUPPORTED("6vzggze9zva4h232s9hd64r27"); // static void strong(graph_t * g, node_t * t, node_t * h, edge_t * orig)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e;
+UNSUPPORTED("bqayp53mx8tl3a9owcil2sfpy"); // if ((e = (agedge(g,t,h,NULL,0))) ||
+UNSUPPORTED("4bkprvzfmfr1nlqmvqcd1xpg"); // (e = (agedge(g,h,t,NULL,0))) || (e = agedge(g, t, h, 0, 1)))
+UNSUPPORTED("9otcshlag9drzks2p4q4bz1z8"); // merge(e, ED_minlen(orig), ED_weight(orig));
+UNSUPPORTED("div10atae09n36x269sl208r1"); // else
+UNSUPPORTED("1qsfg1so4d9ee0f799ylbtkyp"); // agerr(AGERR, "ranking: failure to create strong constraint edge between nodes %s and %s\n",
+UNSUPPORTED("347820654uihcls8om0v8c3g1"); // agnameof(t), agnameof(h));
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 a1kjm11iwgfl824pakzcm8kuu
+// static void weak(graph_t * g, node_t * t, node_t * h, edge_t * orig)
+public static Object weak(Object... arg) {
+UNSUPPORTED("e0f6tf4pkq822l7f10u2xromd"); // static void weak(graph_t * g, node_t * t, node_t * h, edge_t * orig)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("aigogf44ojtcesuy4xs7inqbn"); // node_t *v;
+UNSUPPORTED("9b48a157azcrz2ihzqehhpsvs"); // edge_t *e, *f;
+UNSUPPORTED("3kkq8fnz3moxvyriighzr9v70"); // static int id;
+UNSUPPORTED("hbaoyuj2oi8c7iuzviuukgb7"); // char buf[100];
+UNSUPPORTED("5n9mmbpgpmin1li1s5wxfn0j7"); // for (e = agfstin(g, t); e; e = agnxtin(g, e)) {
+UNSUPPORTED("blrs1fuvxzbs20bdqz7btw4yt"); // /* merge with existing weak edge (e,f) */
+UNSUPPORTED("cccrsacwb6lshsxm8g9vpqdvo"); // v = agtail(e);
+UNSUPPORTED("657evjbfij6x36pli6d9g15lg"); // if ((f = agfstout(g, v)) && (aghead(f) == h)) {
+UNSUPPORTED("6cprbghvenu9ldc0ez1ifc63q"); // return;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("dhdmfarapbytpy4h24lgqslbi"); // if (!e) {
+UNSUPPORTED("blf0483ca5ufq6yh26qqww4wv"); // sprintf (buf, "_weak_%d", id++);
+UNSUPPORTED("9gu1nn0ir6yx53fj7kawo6xtw"); // v = makeXnode(g, buf);
+UNSUPPORTED("7us6c9ykrtln0besnd67v5cer"); // e = agedge(g, v, t, 0, 1);
+UNSUPPORTED("atd2wygaazfzcta0bus6bs4uu"); // f = agedge(g, v, h, 0, 1);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("7nn4pn4dj4nuo71wfp1byijpx"); // ED_minlen(e) = MAX(ED_minlen(e), 0); /* effectively a nop */
+UNSUPPORTED("drqgauf89xr1mpyydaxqfg694"); // ED_weight(e) += ED_weight(orig) * 1000;
+UNSUPPORTED("halhvp8h6olsu4tb4b5zb8ys"); // ED_minlen(f) = MAX(ED_minlen(f), ED_minlen(orig));
+UNSUPPORTED("dyyu1myirsx00xvfvqq97f6dt"); // ED_weight(f) += ED_weight(orig);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 68dc7hsp2siu9in566grx5h8l
+// static void compile_edges(graph_t * ug, graph_t * Xg)
+public static Object compile_edges(Object... arg) {
+UNSUPPORTED("57s72j3dqfa0fdsi9zu6yqbxe"); // static void compile_edges(graph_t * ug, graph_t * Xg)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n;
+UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e;
+UNSUPPORTED("1dgz401xgus10wp90qpgfmm84"); // node_t *Xt, *Xh;
+UNSUPPORTED("c37x0xox8y9eba9wy6d00j14i"); // graph_t *tc, *hc;
+UNSUPPORTED("lp2eyq9typ14npscbcmds97c"); // /* build edge constraints */
+UNSUPPORTED("1rgbf8esuu21jsnjy0ozcv2nx"); // for (n = agfstnode(ug); n; n = agnxtnode(ug, n)) {
+UNSUPPORTED("36jgu4l53q07scrzxtbzu9ws1"); // Xt = ND_rep(n);
+UNSUPPORTED("1huyj2j0jo6l60j1121l0cenn"); // for (e = agfstout(ug, n); e; e = agnxtout(ug, e)) {
+UNSUPPORTED("eihgt2jen0ohii72jzayossof"); // if (is_nonconstraint(e))
+UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue;
+UNSUPPORTED("21s68hvg9tcok9mc1yj0cxyo8"); // Xh = ND_rep(find(aghead(e)));
+UNSUPPORTED("5c9s9jmoqhby2u29zb0g9neqn"); // if (Xt == Xh)
+UNSUPPORTED("6hyelvzskqfqa07xtgjtvg2is"); // continue;
+UNSUPPORTED("enlmoet02jwyseh462fspj7kr"); // tc = ND_clust(agtail(e));
+UNSUPPORTED("47ba8c5wv42664v4uk20dcxui"); // hc = ND_clust(aghead(e));
+UNSUPPORTED("7o1ut6pe3ws38101s6x9jv08k"); // if (is_internal_to_cluster(e)) {
+UNSUPPORTED("61gy4yt9v1l4586kvpqtacmur"); // /* determine if graph requires reversed edge */
+UNSUPPORTED("cuivzwkiwyl1njm43k0v3zig3"); // if ((find(agtail(e)) == GD_maxrep(ND_clust(agtail(e))))
+UNSUPPORTED("9xxo59da6q1v90ljd3h8apc3j"); // || (find(aghead(e)) == GD_minrep(ND_clust(aghead(e))))) {
+UNSUPPORTED("4mdqa1pib7sml5socnk5zj1jn"); // node_t *temp = Xt;
+UNSUPPORTED("edto6lxzuam8lv9gvigp2bnnh"); // Xt = Xh;
+UNSUPPORTED("edahfvolx6t8a93b1jzop0prz"); // Xh = temp;
+UNSUPPORTED("6eq5kf0bj692bokt0bixy1ixh"); // }
+UNSUPPORTED("eap1t3wskyfghhrwqv5fzgiye"); // strong(Xg, Xt, Xh, e);
+UNSUPPORTED("175pyfe8j8mbhdwvrbx3gmew9"); // } else {
+UNSUPPORTED("73tu1coi87ooqzro2vtdezlut"); // if (is_a_strong_cluster(tc) || is_a_strong_cluster(hc))
+UNSUPPORTED("1qlyasf525g29jx5adouyjjaf"); // weak(Xg, Xt, Xh, e);
+UNSUPPORTED("7e1uy5mzei37p66t8jp01r3mk"); // else
+UNSUPPORTED("dtnnxvw72r9ajw35rh6sh0twe"); // strong(Xg, Xt, Xh, e);
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 1nzwhja8l48xyfliiyqjsvegu
+// static void compile_clusters(graph_t* g, graph_t* Xg, node_t* top, node_t* bot)
+public static Object compile_clusters(Object... arg) {
+UNSUPPORTED("4w43o1w7rtbr7a1ewf1ai3ynx"); // static void compile_clusters(graph_t* g, graph_t* Xg, node_t* top, node_t* bot)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n;
+UNSUPPORTED("tppzioyoeodu2sq7fsqife44"); // node_t *rep;
+UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e;
+UNSUPPORTED("evmjaaqcnbnbnogx8aaw70ura"); // graph_t *sub;
+UNSUPPORTED("73bera1w406yjis65313aefau"); // if (is_a_cluster(g) && is_a_strong_cluster(g)) {
+UNSUPPORTED("attp4bsjqe99xnhi7lr7pszar"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
+UNSUPPORTED("cpkj2qkslx3blfoouey105509"); // if (agfstin(g, n) == 0) {
+UNSUPPORTED("eqsuud7jsawkoiswwrrru1r3a"); // rep = ND_rep(find(n));
+UNSUPPORTED("4fbgaoqhx6tmezixpndizn8ee"); // if (!top) top = makeXnode(Xg,"\177top");
+UNSUPPORTED("bp6fj85jbfmup51iezb1m0ceo"); // agedge(Xg, top, rep, 0, 1);
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("f5bjshz39kvzzthd7dqnbg81p"); // if (agfstout(g, n) == 0) {
+UNSUPPORTED("eqsuud7jsawkoiswwrrru1r3a"); // rep = ND_rep(find(n));
+UNSUPPORTED("46t01tbbri501pur6cw0iwvs3"); // if (!bot) bot = makeXnode(Xg,"\177bot");
+UNSUPPORTED("5hobrjtzylmppobf8pdnq7rhk"); // agedge(Xg, rep, bot, 0, 1);
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("6qtb53kac7myad1p5cy3wf89i"); // if (top && bot) {
+UNSUPPORTED("2ydmagof3r394ooo3v0twq5us"); // e = agedge(Xg, top, bot, 0, 1);
+UNSUPPORTED("5s7xl2rvkq0dxxapwrubcmv9p"); // merge(e, 0, 1000);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("bkafc0cyfhu7g619r30g2vtmg"); // for (sub = agfstsubg(g); sub; sub = agnxtsubg(sub))
+UNSUPPORTED("br6bnlza0f68fwkd0sbsfznv5"); // compile_clusters(sub, Xg, top, bot);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 93ycqhupenif7m6n70yj2rptv
+// static void reverse_edge2(graph_t * g, edge_t * e)
+public static Object reverse_edge2(Object... arg) {
+UNSUPPORTED("aa57ihhjujmpk9d1fjnh7uhn2"); // static void reverse_edge2(graph_t * g, edge_t * e)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("32j70piql6r327tbseq7o0k28"); // edge_t *rev;
+UNSUPPORTED("ankp6nch7e9a18lqb2heot7yf"); // rev = (agedge(g,aghead(e),agtail(e),NULL,0));
+UNSUPPORTED("8c5hijvd5kr4lynpc8zoa0b9l"); // if (!rev)
+UNSUPPORTED("3tf0rz74jsukbjti74suklmrr"); // rev = agedge(g, aghead(e), agtail(e), 0, 1);
+UNSUPPORTED("a37ttwpda0n66ej1agvpbx9u"); // merge(rev, ED_minlen(e), ED_weight(e));
+UNSUPPORTED("ae7ymr0zymf63zpp3vzny1kw5"); // agdelete(g, e);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 75994nd7ifrh2xjk0eei7kj04
+// static void dfs(graph_t * g, node_t * v)
+public static Object dfs(Object... arg) {
+UNSUPPORTED("e728nuv7n4wyffryp1y6ny8no"); // static void dfs(graph_t * g, node_t * v)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("9b48a157azcrz2ihzqehhpsvs"); // edge_t *e, *f;
+UNSUPPORTED("9cx417bj13sr8qn5zfj0zllwm"); // node_t *w;
+UNSUPPORTED("701du899u3x4bjilnoar3a2me"); // if (ND_mark(v))
+UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return;
+UNSUPPORTED("3dxrqgsmycugkp3qprexbuawx"); // ND_mark(v) = NOT(0);
+UNSUPPORTED("9z9a3g70rwq874kmknu0re0w0"); // ND_onstack(v) = NOT(0);
+UNSUPPORTED("3twcq4i177ymcmm9hj6l996fr"); // for (e = agfstout(g, v); e; e = f) {
+UNSUPPORTED("9oaziib9dhmc3xyk6ku5rco5a"); // f = agnxtout(g, e);
+UNSUPPORTED("bqi3fu38n0i7mblfl3ycwdjuo"); // w = aghead(e);
+UNSUPPORTED("1pq8rawujka41xkc0ujz0c4jl"); // if (ND_onstack(w))
+UNSUPPORTED("cxzlqoajcjsygpeg1218t5uh8"); // reverse_edge2(g, e);
+UNSUPPORTED("8k75h069sv2k9b6tgz77dscwd"); // else {
+UNSUPPORTED("1w7s47988wvu89n176ee6lnii"); // if (ND_mark(w) == 0)
+UNSUPPORTED("d5xmvav6dfdviu7ikabr84w6g"); // dfs(g, w);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("8o0qmsv6vkvey8j3nrtn0z3nd"); // ND_onstack(v) = 0;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 dt90swbhv55qox6i9anmtxctb
+// static void break_cycles(graph_t * g)
+public static Object break_cycles(Object... arg) {
+UNSUPPORTED("d7jjxsr59cimfe921b021ndni"); // static void break_cycles(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n;
+UNSUPPORTED("16hw9gw0dz2w7mrtba0eoqrdi"); // for (n = agfstnode(g); n; n = agnxtnode(g, n))
+UNSUPPORTED("3hbdxz1mh0xcb0h1e1gea41u4"); // ND_mark(n) = ND_onstack(n) = 0;
+UNSUPPORTED("16hw9gw0dz2w7mrtba0eoqrdi"); // for (n = agfstnode(g); n; n = agnxtnode(g, n))
+UNSUPPORTED("15bqemmbeo0l42s4hi394weuz"); // dfs(g, n);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8wnczo1mkpxdobt1qmszr6m9f
+// static void setMinMax (graph_t* g, int doRoot)
+public static Object setMinMax(Object... arg) {
+UNSUPPORTED("5hvfkvu5sx7btm870992ll8rq"); // static void setMinMax (graph_t* g, int doRoot)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("1cpavh3irbeilfgefcbzvnl04"); // int c, v;
+UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n;
+UNSUPPORTED("eygm2jbvlhvevem9cgvzdsnoi"); // node_t* leader;
+UNSUPPORTED("8lepc7wxus3ce9jmpjg54nxtw"); // /* Do child clusters */
+UNSUPPORTED("7z5fb6iyowsosn1hiz7opeoc6"); // for (c = 1; c <= GD_n_cluster(g); c++)
+UNSUPPORTED("8r4qwge4bz0777mdq5rt0ojei"); // setMinMax(GD_clust(g)[c], 0);
+UNSUPPORTED("3x63fs1jyz7xhzx9gygufh7wx"); // if (!GD_parent(g) && !doRoot) // root graph
+UNSUPPORTED("a7fgam0j0jm7bar0mblsv3no4"); // return;
+UNSUPPORTED("65ovv0jsp2kemyp7179cotrqh"); // GD_minrank(g) = MAXSHORT;
+UNSUPPORTED("4rx9wnlw0uumqfzcjtyg9rpfl"); // GD_maxrank(g) = -1;
+UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
+UNSUPPORTED("5wsvwyjckf81tdlqonfb9nvhu"); // v = ND_rank(n);
+UNSUPPORTED("bbcqt8euig2s31zz814pp52cw"); // if (GD_maxrank(g) < v)
+UNSUPPORTED("3cfkrpa6pt2hni0tkp45ybvtz"); // GD_maxrank(g) = v;
+UNSUPPORTED("3vjkf11cl59z0q8i5mfju17se"); // if (GD_minrank(g) > v) {
+UNSUPPORTED("cze1fj82fd8cmalgawkse3gy"); // GD_minrank(g) = v;
+UNSUPPORTED("73jlqlf2bn3kx7i020menpfcw"); // leader = n;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("5j1zsofmtglx1esxwbstti1un"); // GD_leader(g) = leader;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 1rsds60zu7vl5g6sqr3ielup6
+// static void readout_levels(graph_t * g, graph_t * Xg, int ncc)
+public static Object readout_levels(Object... arg) {
+UNSUPPORTED("5rkflwuoyx87w4zl80k9x22hy"); // static void readout_levels(graph_t * g, graph_t * Xg, int ncc)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n;
+UNSUPPORTED("889z71siph20icfcbycjqnicp"); // node_t *xn;
+UNSUPPORTED("a76n98ruj81c10y11ge1t5f71"); // int* minrk = NULL;
+UNSUPPORTED("8kdgedl9jvch9df0ltm68vfas"); // int doRoot = 0;
+UNSUPPORTED("65ovv0jsp2kemyp7179cotrqh"); // GD_minrank(g) = MAXSHORT;
+UNSUPPORTED("4rx9wnlw0uumqfzcjtyg9rpfl"); // GD_maxrank(g) = -1;
+UNSUPPORTED("almasgzi7eeks0c5qj1cne0ma"); // if (ncc > 1) {
+UNSUPPORTED("bbuxsg26kpzb2fl660hjri9l8"); // int i;
+UNSUPPORTED("dl79ga1rb2mw8udgcp9s69msx"); // minrk = (int*)zmalloc((ncc+1)*sizeof(int));
+UNSUPPORTED("2e6gemf3dl8erdtw782hcarc0"); // for (i = 1; i <= ncc; i++)
+UNSUPPORTED("dd010jlvkjz1z7fowihz8s25o"); // minrk[i] = MAXSHORT;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
+UNSUPPORTED("dfofew00g6pxf2nxt4l881l0i"); // xn = ND_rep(find(n));
+UNSUPPORTED("qp65iwqtnpliswz9lpihtuzc"); // ND_rank(n) = ND_rank(xn);
+UNSUPPORTED("68vv0lam9vxeuk3fg60ad5w6g"); // if (GD_maxrank(g) < ND_rank(n))
+UNSUPPORTED("2v65dy95gqvsnppoelwwl8ayh"); // GD_maxrank(g) = ND_rank(n);
+UNSUPPORTED("3ozq6tqfxcegom34qkyrrxnfg"); // if (GD_minrank(g) > ND_rank(n))
+UNSUPPORTED("duyud2jy9uf1rbcis84c3lsj6"); // GD_minrank(g) = ND_rank(n);
+UNSUPPORTED("5hf6jaqj5exe9r41fzbjl28ys"); // if (minrk) {
+UNSUPPORTED("2m02fq9wavpk0rfm07klg50p0"); // ND_hops(n) = ND_hops(xn);
+UNSUPPORTED("1kpcg7olwm9sb9fw0cw9xov8p"); // minrk[ND_hops(n)] = MIN(minrk[ND_hops(n)],ND_rank(n));
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("6grm8jag5924kjntwhi98yt6v"); // if (minrk) {
+UNSUPPORTED("eg21iwn9eqyjsoisl58nl8i36"); // for (n = agfstnode(g); n; n = agnxtnode(g, n))
+UNSUPPORTED("1xy7cyvcmd5jh134wfd4hkd73"); // ND_rank(n) -= minrk[ND_hops(n)];
+UNSUPPORTED("3h50jqntcutttxjjqk9e7qrp9"); // /* Non-uniform shifting, so recompute maxrank/minrank of root graph */
+UNSUPPORTED("7cxmg4tvzh3us2wx1hpur4ify"); // doRoot = 1;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("19s4z0qdne7jghr6qco9pewkb"); // else if (GD_minrank(g) > 0) { /* should never happen */
+UNSUPPORTED("ekheljktcnka7fv7odg7w4w0b"); // int delta = GD_minrank(g);
+UNSUPPORTED("eg21iwn9eqyjsoisl58nl8i36"); // for (n = agfstnode(g); n; n = agnxtnode(g, n))
+UNSUPPORTED("6xuxsgiblao234kr6ifzzngj"); // ND_rank(n) -= delta;
+UNSUPPORTED("205yra8usg0d60ou7fdef8sb8"); // GD_minrank(g) -= delta;
+UNSUPPORTED("1l0r03kgtm5wfa9w1tb2o6pst"); // GD_maxrank(g) -= delta;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("bfa83r7gfvl4so45ea11h6hs8"); // setMinMax(g, doRoot);
+UNSUPPORTED("1oeld9qf035o8gav2314scxai"); // /* release fastgraph memory from Xg */
+UNSUPPORTED("4uue9kqy9xt1y7qinhilyp73p"); // for (n = agfstnode(Xg); n; n = agnxtnode(Xg, n)) {
+UNSUPPORTED("6uowedfybay0zqxujx4izx5eb"); // free_list(ND_in(n));
+UNSUPPORTED("9ma0k3ktcua915egahxrgo1f"); // free_list(ND_out(n));
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("13jrnqbzc7n4ujm1kc140syrh"); // free(ND_alg(agfstnode(g)));
+UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
+UNSUPPORTED("6acp2mmds4i0gjn21ospjdm1i"); // ND_alg(n) = NULL;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("xlaantr4lfd0cf3p6fhyfjii"); // if (minrk)
+UNSUPPORTED("2quf4kce4g997p8lptbe0s678"); // free (minrk);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6wyn9t7y4rni0tldyaap4zsg4
+// static void dfscc(graph_t * g, node_t * n, int cc)
+public static Object dfscc(Object... arg) {
+UNSUPPORTED("9rlus4sokq2q7mrelfhcyeq9t"); // static void dfscc(graph_t * g, node_t * n, int cc)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e;
+UNSUPPORTED("6xj79bn6cjnne89udj4eccjbq"); // if (ND_hops(n) == 0) {
+UNSUPPORTED("2ug68j3zfpl1hhipj43mlacw4"); // ND_hops(n) = cc;
+UNSUPPORTED("8gbd6b2ssf51om8neirzzr6rw"); // for (e = agfstout(g, n); e; e = agnxtout(g, e))
+UNSUPPORTED("1petrc5reriuz99j26l6kvk9g"); // dfscc(g, aghead(e), cc);
+UNSUPPORTED("c9yz11pm5cux1tvh62xx2kwle"); // for (e = agfstin(g, n); e; e = agnxtin(g, e))
+UNSUPPORTED("4gm4tqnmznd5xu1jmel9vdwu0"); // dfscc(g, agtail(e), cc);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4n4sn2k04eosjc6v3amau8l89
+// static int connect_components(graph_t * g)
+public static Object connect_components(Object... arg) {
+UNSUPPORTED("93546dpzyvd2lgopztw3kyszh"); // static int connect_components(graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("3zjt2iwedrvoc4tjrhcgrj2kp"); // int cc = 0;
+UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n;
+UNSUPPORTED("16hw9gw0dz2w7mrtba0eoqrdi"); // for (n = agfstnode(g); n; n = agnxtnode(g, n))
+UNSUPPORTED("5yepsj8ho954ywprktudr66m8"); // ND_hops(n) = 0;
+UNSUPPORTED("16hw9gw0dz2w7mrtba0eoqrdi"); // for (n = agfstnode(g); n; n = agnxtnode(g, n))
+UNSUPPORTED("12mke9q9ufte7dz3juk9xj03o"); // if (ND_hops(n) == 0)
+UNSUPPORTED("1hzimiukrcikr5ja8r8jsy6mg"); // dfscc(g, n, ++cc);
+UNSUPPORTED("16hhes6efkztzuw8ooeyr7duq"); // if (cc > 1) {
+UNSUPPORTED("aen3uv1t10s8e76c30y8j0051"); // node_t *root = makeXnode(g, "\177root");
+UNSUPPORTED("bzbr2vqual2twjcg2p2sffsd4"); // int ncc = 1;
+UNSUPPORTED("attp4bsjqe99xnhi7lr7pszar"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
+UNSUPPORTED("eci2j6e8io07039308zl0no88"); // if (ND_hops(n) == ncc) {
+UNSUPPORTED("7rj8qzz8d2u85i7gf6c4rs62m"); // (void) agedge(g, root, n, 0, 1);
+UNSUPPORTED("cgm8ehtyoyn2ybwnrxvfx1cv8"); // ncc++;
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("95z6nz9mlol4p31l239u0zyz1"); // return (cc);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9lj0r4q3ulap7ly9cvvqn3d0t
+// static void add_fast_edges (graph_t * g)
+public static Object add_fast_edges(Object... arg) {
+UNSUPPORTED("9od2j2a8s9ki669jghjqrkcym"); // static void add_fast_edges (graph_t * g)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cjx5v6hayed3q8eeub1cggqca"); // node_t *n;
+UNSUPPORTED("5gypxs09iuryx5a2eho9lgdcp"); // edge_t *e;
+UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
+UNSUPPORTED("e20lm4qtccvgsfq5fzjv6sjyl"); // for (e = agfstout(g, n); e; e = agnxtout(g, e)) {
+UNSUPPORTED("1xm961cuv38vb1rckbyfsk5a8"); // elist_append(e, ND_out(n));
+UNSUPPORTED("30covjl73nxramgd8lw1apbkm"); // elist_append(e, ND_in(aghead(e)));
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 2xyhunzw903dytfpyy63oznhz
+// static void my_init_graph(Agraph_t *g, Agobj_t *graph, void *arg)
+public static Object my_init_graph(Object... arg) {
+UNSUPPORTED("3s5gmr0i7qaf8sa79h9ek2t42"); // static void my_init_graph(Agraph_t *g, Agobj_t *graph, void *arg)
+UNSUPPORTED("12ubgsqsc8d2oeobshclx2e9m"); // { int *sz = arg; agbindrec(graph,"level graph rec",sz[0],NOT(0)); }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 1vibj3ycvfkl07m1a2dzr3qf3
+// static void my_init_node(Agraph_t *g, Agobj_t *node, void *arg)
+public static Object my_init_node(Object... arg) {
+UNSUPPORTED("448m4h3oktm1kylrq3iss782r"); // static void my_init_node(Agraph_t *g, Agobj_t *node, void *arg)
+UNSUPPORTED("3mooa3mwczxhc97acdygow0sx"); // { int *sz = arg; agbindrec(node,"level node rec",sz[1],NOT(0)); }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 avor9syqevkn2jo4yf8whbg5f
+// static void my_init_edge(Agraph_t *g, Agobj_t *edge, void *arg)
+public static Object my_init_edge(Object... arg) {
+UNSUPPORTED("bo6poh3fcfvu02sod3dyzjhsi"); // static void my_init_edge(Agraph_t *g, Agobj_t *edge, void *arg)
+UNSUPPORTED("4f0jw3wys20zimucjor8qrhzg"); // { int *sz = arg; agbindrec(edge,"level edge rec",sz[2],NOT(0)); }
+
+throw new UnsupportedOperationException();
+}
+
+
+//1 46nx7przjp7fn42o28hqdaj9k
+// static Agcbdisc_t mydisc =
+
+
+//1 9quqxw3oujl7u6bymimr5be7t
+// int infosizes[] =
+
+
+
+
+//3 590k5zi3mrpwbc3lib0w3rmr2
+// void dot2_rank(graph_t * g, aspect_t* asp)
+public static Object dot2_rank(Object... arg) {
+UNSUPPORTED("d8gu9ua6rerpv9vz9ctco1ca2"); // void dot2_rank(graph_t * g, aspect_t* asp)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("23k65agnd27tv4ix9teds9e2t"); // int ssize;
+UNSUPPORTED("dx1unsp79t4ji8dh8idt48jrc"); // int ncc, maxiter = INT_MAX;
+UNSUPPORTED("8yytudftst76763qgnjebkzhm"); // char *s;
+UNSUPPORTED("dxlxz9md3d6r12wog4x5sc7td"); // graph_t *Xg;
+UNSUPPORTED("hibhvgkp511r6u6ips8yb0un"); // Last_node = NULL;
+UNSUPPORTED("ey4p0fjtw4ac18jh9svmzjs23"); // Xg = agopen("level assignment constraints", Agstrictdirected, 0);
+UNSUPPORTED("e4j7z7nfe33svydzyn4w6abcy"); // agbindrec(Xg,"level graph rec",sizeof(Agraphinfo_t),NOT(0));
+UNSUPPORTED("4j4bkw2k5v7xlf7ycqcrz8qip"); // agpushdisc(Xg,&mydisc,infosizes);
+UNSUPPORTED("d4pjn5ef0ywzmhe2fshhm8bvn"); // edgelabel_ranks(g);
+UNSUPPORTED("e0rdg08m66a12fiixgkjnyrbj"); // if ((s = agget(g, "nslimit1")))
+UNSUPPORTED("9tp2zk1tsr4ce9rwsr0is9u3o"); // maxiter = atof(s) * agnnodes(g);
+UNSUPPORTED("div10atae09n36x269sl208r1"); // else
+UNSUPPORTED("dapt7hf1vwq593la2oydyrv27"); // maxiter = INT_MAX;
+UNSUPPORTED("62k95fm4s1z2wzcyg28ir0x7u"); // compile_samerank(g, 0);
+UNSUPPORTED("bh9imh5owlj1c9ad7mime392x"); // compile_nodes(g, Xg);
+UNSUPPORTED("3kxtahvovojtzi6qqnrricpoo"); // compile_edges(g, Xg);
+UNSUPPORTED("9twf7u3r2hzeic9w0gmvh10bc"); // compile_clusters(g, Xg, 0, 0);
+UNSUPPORTED("cwrov5g30logh4g9omvkblonh"); // break_cycles(Xg);
+UNSUPPORTED("3ficrpbhiwichejg6n1hshz7k"); // ncc = connect_components(Xg);
+UNSUPPORTED("9x72se4xuqwfv27jlqpmivrwb"); // add_fast_edges (Xg);
+UNSUPPORTED("2yazmwrpb1ni51wuck3ruvi2j"); // if (asp) {
+UNSUPPORTED("8ow3lzc6gh107g9bcn4szm7hj"); // init_UF_size(Xg);
+UNSUPPORTED("9503vlimf1i2zv76ua88ooepc"); // initEdgeTypes(Xg);
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("b65fc1791mzxccp9zzxi8vk12"); // if ((s = agget(g, "searchsize")))
+UNSUPPORTED("aqd144wenl3zq15bwc41u9aha"); // ssize = atoi(s);
+UNSUPPORTED("div10atae09n36x269sl208r1"); // else
+UNSUPPORTED("2n4z8w1w3il45lik0kraspkud"); // ssize = -1;
+UNSUPPORTED("aotd35u0hficqt6hlkw8xof03"); // rank2(Xg, 1, maxiter, ssize);
+UNSUPPORTED("4x9mvgxbdou6xj4n98rwzucgi"); // /* fastgr(Xg); */
+UNSUPPORTED("8un6x92pzddrzsnq8y95af4m6"); // readout_levels(g, Xg, ncc);
+UNSUPPORTED("6rs6sp7mefzzbf02kfmvycnaq"); // agclose(Xg);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+}
diff --git a/src/gen/lib/dotgen/sameport__c.java b/src/gen/lib/dotgen/sameport__c.java
new file mode 100644
index 0000000..63b20dc
--- /dev/null
+++ b/src/gen/lib/dotgen/sameport__c.java
@@ -0,0 +1,896 @@
+/* ========================================================================
+ * PlantUML : a free UML diagram generator
+ * ========================================================================
+ *
+ * Project Info: http://plantuml.com
+ *
+ * If you like this project or if you find it useful, you can support us at:
+ *
+ * http://plantuml.com/patreon (only 1$ per month!)
+ * http://plantuml.com/paypal
+ *
+ * This file is part of Smetana.
+ * Smetana is a partial translation of Graphviz/Dot sources from C to Java.
+ *
+ * (C) Copyright 2009-2017, Arnaud Roques
+ *
+ * This translation is distributed under the same Licence as the original C program:
+ *
+ *************************************************************************
+ * Copyright (c) 2011 AT&T Intellectual Property
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors: See CVS logs. Details at http://www.graphviz.org/
+ *************************************************************************
+ *
+ * THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
+ * LICENSE ("AGREEMENT"). [Eclipse Public License - v 1.0]
+ *
+ * ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES
+ * RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ *
+ * You may obtain a copy of the License at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+package gen.lib.dotgen;
+import static gen.lib.cgraph.attr__c.agattr;
+import static smetana.core.JUtilsDebug.ENTERING;
+import static smetana.core.JUtilsDebug.LEAVING;
+import static smetana.core.Macro.AGEDGE;
+import static smetana.core.Macro.N;
+import static smetana.core.Macro.UNSUPPORTED;
+import h.Agedge_s;
+import h.Agnode_s;
+import h.Agraph_s;
+import h.boxf;
+import h.pointf;
+import smetana.core.CString;
+import smetana.core.JUtils;
+import smetana.core.Z;
+import smetana.core.__struct__;
+
+public class sameport__c {
+//1 2digov3edok6d5srhgtlmrycs
+// extern lt_symlist_t lt_preloaded_symbols[]
+
+
+//1 baedz5i9est5csw3epz3cv7z
+// typedef Ppoly_t Ppolyline_t
+
+
+//1 9k44uhd5foylaeoekf3llonjq
+// extern Dtmethod_t* Dtset
+
+
+//1 1ahfywsmzcpcig2oxm7pt9ihj
+// extern Dtmethod_t* Dtbag
+
+
+//1 anhghfj3k7dmkudy2n7rvt31v
+// extern Dtmethod_t* Dtoset
+
+
+//1 5l6oj1ux946zjwvir94ykejbc
+// extern Dtmethod_t* Dtobag
+
+
+//1 2wtf222ak6cui8cfjnw6w377z
+// extern Dtmethod_t* Dtlist
+
+
+//1 d1s1s6ibtcsmst88e3057u9r7
+// extern Dtmethod_t* Dtstack
+
+
+//1 axa7mflo824p6fspjn1rdk0mt
+// extern Dtmethod_t* Dtqueue
+
+
+//1 ega812utobm4xx9oa9w9ayij6
+// extern Dtmethod_t* Dtdeque
+
+
+//1 cyfr996ur43045jv1tjbelzmj
+// extern Dtmethod_t* Dtorder
+
+
+//1 wlofoiftbjgrrabzb2brkycg
+// extern Dtmethod_t* Dttree
+
+
+//1 12bds94t7voj7ulwpcvgf6agr
+// extern Dtmethod_t* Dthash
+
+
+//1 9lqknzty480cy7zsubmabkk8h
+// extern Dtmethod_t _Dttree
+
+
+//1 bvn6zkbcp8vjdhkccqo1xrkrb
+// extern Dtmethod_t _Dthash
+
+
+//1 9lidhtd6nsmmv3e7vjv9e10gw
+// extern Dtmethod_t _Dtlist
+
+
+//1 34ujfamjxo7xn89u90oh2k6f8
+// extern Dtmethod_t _Dtqueue
+
+
+//1 3jy4aceckzkdv950h89p4wjc8
+// extern Dtmethod_t _Dtstack
+
+
+//1 8dfqgf3u1v830qzcjqh9o8ha7
+// extern Agmemdisc_t AgMemDisc
+
+
+//1 18k2oh2t6llfsdc5x0wlcnby8
+// extern Agiddisc_t AgIdDisc
+
+
+//1 a4r7hi80gdxtsv4hdoqpyiivn
+// extern Agiodisc_t AgIoDisc
+
+
+//1 bnzt5syjb7mgeru19114vd6xx
+// extern Agdisc_t AgDefaultDisc
+
+
+//1 35y2gbegsdjilegaribes00mg
+// extern Agdesc_t Agdirected, Agstrictdirected, Agundirected, Agstrictundirected
+
+
+//1 c2rygslq6bcuka3awmvy2b3ow
+// typedef Agsubnode_t Agnoderef_t
+
+
+//1 xam6yv0dcsx57dtg44igpbzn
+// typedef Dtlink_t Agedgeref_t
+
+
+//1 nye6dsi1twkbddwo9iffca1j
+// extern char *Version
+
+
+//1 65mu6k7h7lb7bx14jpiw7iyxr
+// extern char **Files
+
+
+//1 2rpjdzsdyrvomf00zcs3u3dyn
+// extern const char **Lib
+
+
+//1 6d2f111lntd2rsdt4gswh5909
+// extern char *CmdName
+
+
+//1 a0ltq04fpeg83soa05a2fkwb2
+// extern char *specificFlags
+
+
+//1 1uv30qeqq2jh6uznlr4dziv0y
+// extern char *specificItems
+
+
+//1 7i4hkvngxe3x7lmg5h6b3t9g3
+// extern char *Gvfilepath
+
+
+//1 9jp96pa73kseya3w6sulxzok6
+// extern char *Gvimagepath
+
+
+//1 40ylumfu7mrvawwf4v2asvtwk
+// extern unsigned char Verbose
+
+
+//1 93st8awjy1z0h07n28qycbaka
+// extern unsigned char Reduce
+
+
+//1 f2vs67ts992erf8onwfglurzp
+// extern int MemTest
+
+
+//1 c6f8whijgjwwagjigmxlwz3gb
+// extern char *HTTPServerEnVar
+
+
+//1 cp4hzj7p87m7arw776d3bt7aj
+// extern char *Output_file_name
+
+
+//1 a3rqagofsgraie6mx0krzkgsy
+// extern int graphviz_errors
+
+
+//1 5up05203r4kxvjn1m4njcgq5x
+// extern int Nop
+
+
+//1 umig46cco431x14b3kosde2t
+// extern double PSinputscale
+
+
+//1 52bj6v8fqz39khasobljfukk9
+// extern int Syntax_errors
+
+
+//1 9ekf2ina8fsjj6y6i0an6somj
+// extern int Show_cnt
+
+
+//1 38di5qi3nkxkq65onyvconk3r
+// extern char** Show_boxes
+
+
+//1 6ri6iu712m8mpc7t2670etpcw
+// extern int CL_type
+
+
+//1 bomxiw3gy0cgd1ydqtek7fpxr
+// extern unsigned char Concentrate
+
+
+//1 cqy3gqgcq8empdrbnrhn84058
+// extern double Epsilon
+
+
+//1 64slegfoouqeg0rmbyjrm8wgr
+// extern int MaxIter
+
+
+//1 88wdinpnmfs4mab4aw62yb0bg
+// extern int Ndim
+
+
+//1 8bbad3ogcelqnnvo5br5s05gq
+// extern int State
+
+
+//1 17rnd8q45zclfn68qqst2vxxn
+// extern int EdgeLabelsDone
+
+
+//1 ymx1z4s8cznjifl2d9f9m8jr
+// extern double Initial_dist
+
+
+//1 a33bgl0c3uqb3trx419qulj1x
+// extern double Damping
+
+
+//1 d9lvrpjg1r0ojv40pod1xwk8n
+// extern int Y_invert
+
+
+//1 71efkfs77q5tq9ex6y0f4kanh
+// extern int GvExitOnUsage
+
+
+//1 4xy2dkdkv0acs2ue9eca8hh2e
+// extern Agsym_t *G_activepencolor, *G_activefillcolor, *G_selectedpencolor, *G_selectedfillcolor, *G_visitedpencolor, *G_visitedfillcolor, *G_deletedpencolor, *G_deletedfillcolor, *G_ordering, *G_peripheries, *G_penwidth, *G_gradientangle, *G_margin
+
+
+//1 9js5gxgzr74eakgtfhnbws3t9
+// extern Agsym_t *N_height, *N_width, *N_shape, *N_color, *N_fillcolor, *N_activepencolor, *N_activefillcolor, *N_selectedpencolor, *N_selectedfillcolor, *N_visitedpencolor, *N_visitedfillcolor, *N_deletedpencolor, *N_deletedfillcolor, *N_fontsize, *N_fontname, *N_fontcolor, *N_margin, *N_label, *N_xlabel, *N_nojustify, *N_style, *N_showboxes, *N_sides, *N_peripheries, *N_ordering, *N_orientation, *N_skew, *N_distortion, *N_fixed, *N_imagescale, *N_layer, *N_group, *N_comment, *N_vertices, *N_z, *N_penwidth, *N_gradientangle
+
+
+//1 anqllp9sj7wo45w6bm11j8trn
+// extern Agsym_t *E_weight, *E_minlen, *E_color, *E_fillcolor, *E_activepencolor, *E_activefillcolor, *E_selectedpencolor, *E_selectedfillcolor, *E_visitedpencolor, *E_visitedfillcolor, *E_deletedpencolor, *E_deletedfillcolor, *E_fontsize, *E_fontname, *E_fontcolor, *E_label, *E_xlabel, *E_dir, *E_style, *E_decorate, *E_showboxes, *E_arrowsz, *E_constr, *E_layer, *E_comment, *E_label_float, *E_samehead, *E_sametail, *E_arrowhead, *E_arrowtail, *E_headlabel, *E_taillabel, *E_labelfontsize, *E_labelfontname, *E_labelfontcolor, *E_labeldistance, *E_labelangle, *E_tailclip, *E_headclip, *E_penwidth
+
+
+//1 bh0z9puipqw7gymjd5h5b8s6i
+// extern struct fdpParms_s* fdp_parms
+
+
+
+
+//3 ciez0pfggxdljedzsbklq49f0
+// static inline point pointof(int x, int y)
+public static Object pointof(Object... arg) {
+UNSUPPORTED("8e4tj258yvfq5uhsdpk37n5eq"); // static inline point pointof(int x, int y)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("12jimkrzqxavaie0cpapbx18c"); // r.x = x;
+UNSUPPORTED("7ivmviysahgsc5nn9gtp7q2if"); // r.y = y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 c1s4k85p1cdfn176o3uryeros
+// static inline pointf pointfof(double x, double y)
+public static __struct__<pointf> pointfof(double x, double y) {
+// WARNING!! STRUCT
+return pointfof_w_(x, y).copy();
+}
+private static __struct__<pointf> pointfof_w_(double x, double y) {
+ENTERING("c1s4k85p1cdfn176o3uryeros","pointfof");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", x);
+ r.setDouble("y", y);
+ return r;
+} finally {
+LEAVING("c1s4k85p1cdfn176o3uryeros","pointfof");
+}
+}
+
+
+
+
+//3 7cufnfitrh935ew093mw0i4b7
+// static inline box boxof(int llx, int lly, int urx, int ury)
+public static Object boxof(Object... arg) {
+UNSUPPORTED("3lzesfdd337h31jrlib1czocm"); // static inline box boxof(int llx, int lly, int urx, int ury)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("cylhjlutoc0sc0uy7g98m9fb8"); // b.LL.x = llx, b.LL.y = lly;
+UNSUPPORTED("242of6revxzx8hpe7yerrchz6"); // b.UR.x = urx, b.UR.y = ury;
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 1vvsta5i8of59frav6uymguav
+// static inline boxf boxfof(double llx, double lly, double urx, double ury)
+public static __struct__<boxf> boxfof(double llx, double lly, double urx, double ury) {
+// WARNING!! STRUCT
+return boxfof_w_(llx, lly, urx, ury).copy();
+}
+private static __struct__<boxf> boxfof_w_(double llx, double lly, double urx, double ury) {
+ENTERING("1vvsta5i8of59frav6uymguav","boxfof");
+try {
+ final __struct__<boxf> b = JUtils.from(boxf.class);
+ b.getStruct("LL").setDouble("x", llx);
+ b.getStruct("LL").setDouble("y", lly);
+ b.getStruct("UR").setDouble("x", urx);
+ b.getStruct("UR").setDouble("y", ury);
+ return b;
+} finally {
+LEAVING("1vvsta5i8of59frav6uymguav","boxfof");
+}
+}
+
+
+
+
+//3 1n5xl70wxuabyf97mclvilsm6
+// static inline point add_point(point p, point q)
+public static Object add_point(Object... arg) {
+UNSUPPORTED("6iamka1fx8fk1rohzzse8phte"); // static inline point add_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("3n2sizjd0civbzm6iq7su1s2p"); // r.x = p.x + q.x;
+UNSUPPORTED("65ygdo31w09i5i6bd2f7azcd3"); // r.y = p.y + q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 arrsbik9b5tnfcbzsm8gr2chx
+// static inline pointf add_pointf(pointf p, pointf q)
+public static __struct__<pointf> add_pointf(final __struct__<pointf> p, final __struct__<pointf> q) {
+// WARNING!! STRUCT
+return add_pointf_w_(p.copy(), q.copy()).copy();
+}
+private static __struct__<pointf> add_pointf_w_(final __struct__<pointf> p, final __struct__<pointf> q) {
+ENTERING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+try {
+ final __struct__<pointf> r = JUtils.from(pointf.class);
+ r.setDouble("x", p.getDouble("x") + q.getDouble("x"));
+ r.setDouble("y", p.getDouble("y") + q.getDouble("y"));
+ return r;
+} finally {
+LEAVING("arrsbik9b5tnfcbzsm8gr2chx","add_pointf");
+}
+}
+
+
+
+
+//3 ai2dprak5y6obdsflguh5qbd7
+// static inline point sub_point(point p, point q)
+public static Object sub_point(Object... arg) {
+UNSUPPORTED("cd602849h0bce8lu9xegka0ia"); // static inline point sub_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 16f6pyogcv3j7n2p0n8giqqgh
+// static inline pointf sub_pointf(pointf p, pointf q)
+public static Object sub_pointf(Object... arg) {
+UNSUPPORTED("dmufj44lddsnj0wjyxsg2fcso"); // static inline pointf sub_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("4q4q9dveah93si8ajfv59gz27"); // r.x = p.x - q.x;
+UNSUPPORTED("9f90ik0o2yqhanzntpy3d2ydy"); // r.y = p.y - q.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9k50jgrhc4f9824vf8ony74rw
+// static inline point mid_point(point p, point q)
+public static Object mid_point(Object... arg) {
+UNSUPPORTED("evy44tdsmu3erff9dp2x835u2"); // static inline point mid_point(point p, point q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("1a6p6fm57o0wt5ze2btsx06c7"); // r.x = (p.x + q.x) / 2;
+UNSUPPORTED("1kbj5tgdmfi6kf4jgg6skhr6e"); // r.y = (p.y + q.y) / 2;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 59c4f7im0ftyowhnzzq2v9o1x
+// static inline pointf mid_pointf(pointf p, pointf q)
+public static Object mid_pointf(Object... arg) {
+UNSUPPORTED("381o63o9kb04d7gzg65v0r3q"); // static inline pointf mid_pointf(pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("c5vboetlr3mf43wns7iik6m1w"); // r.x = (p.x + q.x) / 2.;
+UNSUPPORTED("bcdf562ldr3bjn78hcay5xd63"); // r.y = (p.y + q.y) / 2.;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 5r18p38gisvcx3zsvbb9saixx
+// static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+public static Object interpolate_pointf(Object... arg) {
+UNSUPPORTED("894yimn33kmtm454llwdaotu8"); // static inline pointf interpolate_pointf(double t, pointf p, pointf q)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("ef2acl8wa2ooqcb5vz3098maz"); // pointf r;
+UNSUPPORTED("5tpwuyf5iidesy80v8o4nwkmk"); // r.x = p.x + t * (q.x - p.x);
+UNSUPPORTED("ewnrc5uloj3w5jbmsjcn3wja0"); // r.y = p.y + t * (q.y - p.y);
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bxzrv2ghq04qk5cbyy68s4mol
+// static inline point exch_xy(point p)
+public static Object exch_xy(Object... arg) {
+UNSUPPORTED("2vxya0v2fzlv5e0vjaa8d414"); // static inline point exch_xy(point p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c0j3k9xv06332q98k2pgpacto"); // point r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 9lt3e03tac6h6sydljrcws8fd
+// static inline pointf exch_xyf(pointf p)
+public static Object exch_xyf(Object... arg) {
+UNSUPPORTED("8qamrobrqi8jsvvfrxkimrsnw"); // static inline pointf exch_xyf(pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("60cojdwc2h7f0m51s9jdwvup7"); // r.x = p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8l9qhieokthntzdorlu5zn29b
+// static inline box box_bb(box b0, box b1)
+public static Object box_bb(Object... arg) {
+UNSUPPORTED("36et5gmnjrby6o7bq9sgh1hx6"); // static inline box box_bb(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 clws9h3bbjm0lw3hexf8nl4c4
+// static inline boxf boxf_bb(boxf b0, boxf b1)
+public static Object boxf_bb(Object... arg) {
+UNSUPPORTED("dyrqu4ww9osr9c86gqgmifcp6"); // static inline boxf boxf_bb(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("8mr2c9xitsqi8z1plbp7ox1hu"); // b.LL.x = MIN(b0.LL.x, b1.LL.x);
+UNSUPPORTED("2egu55ef4u1i03nwz01k7kcrl"); // b.LL.y = MIN(b0.LL.y, b1.LL.y);
+UNSUPPORTED("9n6ei3odbgefwfxvql9whcpe"); // b.UR.x = MAX(b0.UR.x, b1.UR.x);
+UNSUPPORTED("19ocysbuh4pxyft2bqhyhigr1"); // b.UR.y = MAX(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 bit6ycxo1iqd2al92y8gkzlvb
+// static inline box box_intersect(box b0, box b1)
+public static Object box_intersect(Object... arg) {
+UNSUPPORTED("34gv28cldst09bl71itjgviue"); // static inline box box_intersect(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("52u27kayecy1i1e8bbo8f7s9r"); // box b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8gfybie7k6pgb3o1a6llgpwng
+// static inline boxf boxf_intersect(boxf b0, boxf b1)
+public static Object boxf_intersect(Object... arg) {
+UNSUPPORTED("ape22b8z6jfg17gvo42hok9eb"); // static inline boxf boxf_intersect(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("c57pq0f87j6dnbcvygu7v6k84"); // boxf b;
+UNSUPPORTED("9slu7bixuymxttjic76ha2nl2"); // b.LL.x = MAX(b0.LL.x, b1.LL.x);
+UNSUPPORTED("3uv943c2f82yuif249pf5azob"); // b.LL.y = MAX(b0.LL.y, b1.LL.y);
+UNSUPPORTED("74tf5h16bc9zabq3s3dyny543"); // b.UR.x = MIN(b0.UR.x, b1.UR.x);
+UNSUPPORTED("d99gcv3i7xes7y7rqf8ii20ux"); // b.UR.y = MIN(b0.UR.y, b1.UR.y);
+UNSUPPORTED("2vmm1j57brhn455f8f3iyw6mo"); // return b;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 7z8j2quq65govaaejrz7b4cvb
+// static inline int box_overlap(box b0, box b1)
+public static Object box_overlap(Object... arg) {
+UNSUPPORTED("1e9k599x7ygct7r4cfdxlk9u9"); // static inline int box_overlap(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4z0suuut2acsay5m8mg9dqjdu
+// static inline int boxf_overlap(boxf b0, boxf b1)
+public static Object boxf_overlap(Object... arg) {
+UNSUPPORTED("905nejsewihwhhc3bhnrz9nwo"); // static inline int boxf_overlap(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("7a9wwpu7dhdphd08y1ecw54w5"); // return OVERLAP(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 dd34swz5rmdgu3a2np2a4h1dy
+// static inline int box_contains(box b0, box b1)
+public static Object box_contains(Object... arg) {
+UNSUPPORTED("aputfc30fjkvy6jx4otljaczq"); // static inline int box_contains(box b0, box b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 8laj1bspbu2i1cjd9upr7xt32
+// static inline int boxf_contains(boxf b0, boxf b1)
+public static Object boxf_contains(Object... arg) {
+UNSUPPORTED("7ccnttkiwt834yfyw0evcm18v"); // static inline int boxf_contains(boxf b0, boxf b1)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("87ap80vrh2a4gpprbxr33lrg3"); // return CONTAINS(b0, b1);
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 4wf5swkz24xx51ja2dynbycu1
+// static inline pointf perp (pointf p)
+public static Object perp(Object... arg) {
+UNSUPPORTED("567wpqlg9rv63ynyvxd9sgkww"); // static inline pointf perp (pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("2fyydy6t6yifjsczccsb9szeg"); // r.x = -p.y;
+UNSUPPORTED("evp2x66oa4s1tlnc0ytxq2qbq"); // r.y = p.x;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 6dtlpzv4mvgzb9o0b252yweuv
+// static inline pointf scale (double c, pointf p)
+public static Object scale(Object... arg) {
+UNSUPPORTED("c1ngytew34bmkdb7vps5h3dh8"); // static inline pointf scale (double c, pointf p)
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("cvexv13y9fq49v0j4d5t4cm9f"); // pointf r;
+UNSUPPORTED("dznf7nac14snww4usquyd6r3r"); // r.x = c * p.x;
+UNSUPPORTED("33kk73m8vjcux5tnjl8co2pe6"); // r.y = c * p.y;
+UNSUPPORTED("a2hk6w52njqjx48nq3nnn2e5i"); // return r;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 eu2yvovb9xx4rzic3gllij2bv
+// void dot_sameports(graph_t * g)
+public static void dot_sameports(Agraph_s g) {
+ENTERING("eu2yvovb9xx4rzic3gllij2bv","dot_sameports");
+try {
+ Agnode_s n;
+ Agedge_s e;
+ CString id;
+ //same_t samehead[5];
+ //same_t sametail[5];
+ int n_samehead; /* number of same_t groups on current node */
+ int n_sametail; /* number of same_t groups on current node */
+ int i;
+ Z.z().E_samehead = agattr(g, AGEDGE, new CString("samehead"),null);
+ Z.z().E_sametail = agattr(g, AGEDGE, new CString("sametail"),null);
+ if (N(Z.z().E_samehead!=null || Z.z().E_sametail!=null))
+ return;
+UNSUPPORTED("44thr6ep72jsj3fksjiwdx3yr"); // for (n = agfstnode(g); n; n = agnxtnode(g, n)) {
+UNSUPPORTED("4roxmr5lxkjz6gn1j9mndurq2"); // n_samehead = n_sametail = 0;
+UNSUPPORTED("8oxob1qbbkbjh0jjcogk42jfl"); // for (e = agfstedge(g, n); e; e = agnxtedge(g, e, n)) {
+UNSUPPORTED("4gy7rakqurxvound05crezka2"); // if (aghead(e) == agtail(e)) continue; /* Don't support same* for loops */
+UNSUPPORTED("2r5fkddp1ey0fvpok2scgkk99"); // if (aghead(e) == n && E_samehead &&
+UNSUPPORTED("d38ofiemhq37ykyauh9wync84"); // (id = agxget(e, E_samehead))[0])
+UNSUPPORTED("18y7dy98psh7ultlx0jugsfu2"); // n_samehead = sameedge(samehead, n_samehead, n, e, id);
+UNSUPPORTED("5snv0fee5roi91irdwv8x51xi"); // else if (agtail(e) == n && E_sametail &&
+UNSUPPORTED("8xvjbvzldkn1yksprzfexgsjs"); // (id = agxget(e, E_sametail))[0])
+UNSUPPORTED("cdn1fgq1pke9ekyar2b4r6e91"); // n_sametail = sameedge(sametail, n_sametail, n, e, id);
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("c96gtgvp5uw8ktp389l2s9l4u"); // for (i = 0; i < n_samehead; i++) {
+UNSUPPORTED("b2s9feywib1q9pxw4h31yz6dk"); // if (samehead[i].l.size > 1)
+UNSUPPORTED("1xvsmwfz2hihjki8tsqiaa1g8"); // sameport(n, &samehead[i].l, samehead[i].arr_len);
+UNSUPPORTED("cpzvkkchr60qet357b9gg1e5q"); // free_list(samehead[i].l);
+UNSUPPORTED("6cnsuklvjftdyhzat6za4qggi"); // /* I sure hope I don't need to free the char* id */
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("9ktz8j6cseb5w7jkfhrj5r19t"); // for (i = 0; i < n_sametail; i++) {
+UNSUPPORTED("5vcqm1irqrqcg4f6ldrqkikq8"); // if (sametail[i].l.size > 1)
+UNSUPPORTED("dcjzqns8bm1o766uqi8dy72qf"); // sameport(n, &sametail[i].l, sametail[i].arr_len);
+UNSUPPORTED("13a7frulpyheo0h4ajbfja7ph"); // free_list(sametail[i].l);
+UNSUPPORTED("6cnsuklvjftdyhzat6za4qggi"); // /* I sure hope I don't need to free the char* id */
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+} finally {
+LEAVING("eu2yvovb9xx4rzic3gllij2bv","dot_sameports");
+}
+}
+
+
+
+
+//3 e6phoefj4ujntgmpiclbnmliw
+// static int sameedge(same_t * same, int n_same, node_t * n, edge_t * e, char *id)
+public static Object sameedge(Object... arg) {
+UNSUPPORTED("4pviw1spiyvhdz8yvl4ho6qkx"); // static int sameedge(same_t * same, int n_same, node_t * n, edge_t * e, char *id)
+UNSUPPORTED("bz7wamuuo5855unp564487v13"); // /* register E in the SAME structure of N under ID. Uses static int N_SAME */
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("ddmbnep3k060w2rgslisky5vw"); // int i, sflag, eflag, flag;
+UNSUPPORTED("4yhtj0buzrukmv0lwrz77s5oa"); // for (i = 0; i < n_same; i++)
+UNSUPPORTED("6htdinsa3h8aamp1e6pvd6ig5"); // if ((*(same[i].id)==*(id)&&!strcmp(same[i].id,id))) {
+UNSUPPORTED("bqrcn2qjykhnd6fuwneng85h"); // elist_append(e, same[i].l);
+UNSUPPORTED("g5anfkdhikcxt42clvstq6hm"); // goto set_arrow;
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("8ac5s7v71vxuj2d2r4t989b1c"); // if (++n_same > 5) {
+UNSUPPORTED("c29filv0jivh50blpbuqjk5ib"); // n_same--;
+UNSUPPORTED("3uf43hfdusyzm1vp3dq12qu29"); // agerr(AGERR, "too many (> %d) same{head,tail} groups for node %s\n",
+UNSUPPORTED("ciwytw61x3j4anugbarxaa7m"); // 5, agnameof(n));
+UNSUPPORTED("3lrnrroeosc48ilq0azgtzyna"); // return n_same;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("36d7os443e3k5gf7g7zvi3vfs"); // alloc_elist(1, same[i].l);
+UNSUPPORTED("3s0n702bprlxue4xtghqv3nad"); // elist_fastapp(e, same[i].l);
+UNSUPPORTED("cwxcw0cnsxpwkd7l94pmw1dfg"); // same[i].id = id;
+UNSUPPORTED("4y2b9aw2a57zud1ncpiw2fihn"); // same[i].n_arr = 0;
+UNSUPPORTED("2lemlhm6qdqemg83e6xwyzd01"); // same[i].arr_len = 0;
+UNSUPPORTED("3k68ve2sycumnr4ncfzymgyli"); // set_arrow:
+UNSUPPORTED("4028w60fcyzgcb6qh4kf8090j"); // arrow_flags(e, &sflag, &eflag);
+UNSUPPORTED("1rkfoax4tin2ccbtpc8w1tnpv"); // if ((flag = aghead(e) == n ? eflag : sflag))
+UNSUPPORTED("bhh3lvo0knve8fiod7js8o8oy"); // same[i].arr_len =
+UNSUPPORTED("b7yh5042d5o8u6iso9bm39glf"); // /* only consider arrows if there's exactly one arrow */
+UNSUPPORTED("5r1jxkep2wvpcpjz1e6n0dxo7"); // (++same[i].n_arr == 1) ? arrow_length(e, flag) : 0;
+UNSUPPORTED("59a2z18u4tje6r407a6psdqy8"); // return n_same;
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+
+
+//3 2mnqx0mihpyo94rckzyvqd3ha
+// static void sameport(node_t * u, elist * l, double arr_len)
+public static Object sameport(Object... arg) {
+UNSUPPORTED("5h4o73bwixguohs97owrtr8ef"); // static void sameport(node_t * u, elist * l, double arr_len)
+UNSUPPORTED("d5nznmmgnjszlfjdd61kps3jx"); // /* make all edges in L share the same port on U. The port is placed on the
+UNSUPPORTED("bo9mbi1sf1ycc8zr8zucow3sz"); // node boundary and the average angle between the edges. FIXME: this assumes
+UNSUPPORTED("4jpc10q4iiglyfgqc4t0rvtce"); // naively that the edges are straight lines, which is wrong if they are long.
+UNSUPPORTED("wh2ex8xlk21eu1y33pacj3v2"); // In that case something like concentration could be done.
+UNSUPPORTED("4c9tqu2byiozzo2mzc1fbvda9"); // An arr_port is also computed that's ARR_LEN away from the node boundary.
+UNSUPPORTED("atdcc5pbds8mqzssaq6v0r6rw"); // It's used for edges that don't themselves have an arrow.
+UNSUPPORTED("bnetqzovnscxile7ao44kc0qd"); // */
+UNSUPPORTED("erg9i1970wdri39osu8hx2a6e"); // {
+UNSUPPORTED("aigogf44ojtcesuy4xs7inqbn"); // node_t *v;
+UNSUPPORTED("9b48a157azcrz2ihzqehhpsvs"); // edge_t *e, *f;
+UNSUPPORTED("b17di9c7wgtqm51bvsyxz6e2f"); // int i;
+UNSUPPORTED("e39yybz8f8dk5960upp4t7e85"); // double x = 0, y = 0, x1, y1, x2, y2, r;
+UNSUPPORTED("cmzlbdlia0ky3ulmkmhw731vo"); // port prt;
+UNSUPPORTED("lnwbe9uftcv8uw5w72tyaim6"); // int sflag, eflag;
+UNSUPPORTED("3s75qjxnr416bs4xwntk5wjey"); // /* Compute the direction vector (x,y) of the average direction. We compute
+UNSUPPORTED("168uvy6red5coj19cfwdg74w4"); // with direction vectors instead of angles because else we have to first
+UNSUPPORTED("byd7rdw7ogomu0h8xa3cngptx"); // bring the angles within PI of each other. av(a,b)!=av(a,b+2*PI) */
+UNSUPPORTED("7qdtxp882tja3q4pjpimsdpz2"); // for (i = 0; i < l->size; i++) {
+UNSUPPORTED("9a2w9ypg4zbrmt9mwxerl9ku9"); // e = l->list[i];
+UNSUPPORTED("dmcddmsjj52vhbo0p72d20r7x"); // if (aghead(e) == u)
+UNSUPPORTED("4gg5n60ynsciy3te5bmvsjdu0"); // v = agtail(e);
+UNSUPPORTED("9352ql3e58qs4fzapgjfrms2s"); // else
+UNSUPPORTED("39bh91n8ucstjr8vmtx3ynvcd"); // v = aghead(e);
+UNSUPPORTED("3bzvithkkr721ghsi2ljswz41"); // x1 = ND_coord(v).x - ND_coord(u).x;
+UNSUPPORTED("2b884aalfpupcphtkwlw7fh1p"); // y1 = ND_coord(v).y - ND_coord(u).y;
+UNSUPPORTED("2bo8vt6om92qnyd8ajsur7839"); // r = hypot(x1, y1);
+UNSUPPORTED("8ldeax6x9cgrmbfybuxbl5n3o"); // x += x1 / r;
+UNSUPPORTED("lvaxvfnj6g12uz2apxvc32bt"); // y += y1 / r;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("a1mnn3lz9vym0mycdnjtnqt50"); // r = hypot(x, y);
+UNSUPPORTED("en33l6y6hjb8cbouawh4qgny1"); // x /= r;
+UNSUPPORTED("7ogy0bdt0ghq60m7dyzb48vku"); // y /= r;
+UNSUPPORTED("1zwmby4z9dnptpyvedi7zqx1y"); // /* (x1,y1),(x2,y2) is a segment that must cross the node boundary */
+UNSUPPORTED("aezmu3kg51jsv6vuj8yl2vgx0"); // x1 = ND_coord(u).x;
+UNSUPPORTED("b9lds1fhngov0656kxk71v6o"); // y1 = ND_coord(u).y; /* center of node */
+UNSUPPORTED("a47id67bq23txqyol6w89ohg8"); // r = MAX(ND_lw(u) + ND_rw(u), ND_ht(u) + GD_ranksep(agraphof(u))); /* far away */
+UNSUPPORTED("632ifec281b8hg0vql6w66fd0"); // x2 = x * r + ND_coord(u).x;
+UNSUPPORTED("tpm4a8o4c87dctdvop70l3gg"); // y2 = y * r + ND_coord(u).y;
+UNSUPPORTED("9axcwk1yl7elzq5ch7zzsg2b"); // { /* now move (x1,y1) to the node boundary */
+UNSUPPORTED("6qp76u7xiuyi81ocft3zna7rw"); // pointf curve[4]; /* bezier control points for a straight line */
+UNSUPPORTED("d2banip9m2nhni4tcg0ub95sb"); // curve[0].x = x1;
+UNSUPPORTED("jy2q28s2gzpbigtocfoo6cy6"); // curve[0].y = y1;
+UNSUPPORTED("90jm80vushtpjetfmrlks5tr6"); // curve[1].x = (2 * x1 + x2) / 3;
+UNSUPPORTED("ah6xwuv1rqq311cmwhnrs4p7g"); // curve[1].y = (2 * y1 + y2) / 3;
+UNSUPPORTED("5nzdtvblt406q4j887woceaso"); // curve[2].x = (2 * x2 + x1) / 3;
+UNSUPPORTED("8ccq8nqc6cwcgqyrls16i5n1x"); // curve[2].y = (2 * y2 + y1) / 3;
+UNSUPPORTED("9e73i3zoi98jcem56ovsw95mw"); // curve[3].x = x2;
+UNSUPPORTED("bt1idr0p5w37ehw0ca5qvh2d0"); // curve[3].y = y2;
+UNSUPPORTED("4hvdnsqv9gvg89n449ivew89w"); // shape_clip(u, curve);
+UNSUPPORTED("e8zqbvvz0hnmxynqrsi4tq6z9"); // x1 = curve[0].x - ND_coord(u).x;
+UNSUPPORTED("10uhdsyhabakyucrrlkpxmy39"); // y1 = curve[0].y - ND_coord(u).y;
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("ftxzqcd66xy9t3i1shc08phg"); // /* compute PORT on the boundary */
+UNSUPPORTED("egqrua11zla4ilqnv8fe2rqa9"); // prt.p.x = ROUND(x1);
+UNSUPPORTED("3j43h2ta90714rhr89dxd9bly"); // prt.p.y = ROUND(y1);
+UNSUPPORTED("72f3ncaut57fflmrrrd7g625i"); // prt.bp = 0;
+UNSUPPORTED("86dw0xu09q0vf963rwyhthsga"); // prt.order =
+UNSUPPORTED("bi7e99txixk5vn16uz1ewze60"); // (256 * (ND_lw(u) + prt.p.x)) / (ND_lw(u) + ND_rw(u));
+UNSUPPORTED("2ssajop92yd2a8y22o22ea36z"); // prt.constrained = 0;
+UNSUPPORTED("6oy9nbi9ensh5cuoda16glfkk"); // prt.defined = NOT(0);
+UNSUPPORTED("9vfrhc8s3bav5vsioug70ec8a"); // prt.clip = 0;
+UNSUPPORTED("58u5npq8vw06285kpx39zg9us"); // prt.dyna = 0;
+UNSUPPORTED("26hzjlrn2f97g04rs41bxd6cp"); // prt.theta = 0;
+UNSUPPORTED("6r9ivoxmq49o3gv1yto4zyvi3"); // prt.side = 0;
+UNSUPPORTED("aujriwmmb49o2fxrmsjoedap6"); // prt.name = NULL;
+UNSUPPORTED("3ff91qop4adzc4f4h1lnljqyp"); // /* assign one of the ports to every edge */
+UNSUPPORTED("7qdtxp882tja3q4pjpimsdpz2"); // for (i = 0; i < l->size; i++) {
+UNSUPPORTED("9a2w9ypg4zbrmt9mwxerl9ku9"); // e = l->list[i];
+UNSUPPORTED("84n057olv326z2v8k45silocb"); // arrow_flags(e, &sflag, &eflag);
+UNSUPPORTED("2csv6mfvww0031xz126km61c5"); // for (; e; e = ED_to_virt(e)) { /* assign to all virt edges of e */
+UNSUPPORTED("9rrwjg2l48y4n9w7ymrr9udrs"); // for (f = e; f;
+UNSUPPORTED("cd9trmrmocvmp9gcd5yhpi8j2"); // f = ED_edge_type(f) == 1 &&
+UNSUPPORTED("c609sm2glgudtov2qxajroomq"); // ND_node_type(aghead(f)) == 1 &&
+UNSUPPORTED("ez0iln0wthfexsk2addlvf968"); // ND_out(aghead(f)).size == 1 ?
+UNSUPPORTED("3c7kng7zq5tuk7q0g4368f83a"); // ND_out(aghead(f)).list[0] : NULL) {
+UNSUPPORTED("au8chupq2urgaefasiz9q9p4"); // if (aghead(f) == u)
+UNSUPPORTED("9n4w8egcjmjwmkgptavq9x8on"); // ED_head_port(f) = prt;
+UNSUPPORTED("ckzw343313p1917g5yol8mget"); // if (agtail(f) == u)
+UNSUPPORTED("es5btobfx5kd4ziscx7ym4kf7"); // ED_tail_port(f) = prt;
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("9rrwjg2l48y4n9w7ymrr9udrs"); // for (f = e; f;
+UNSUPPORTED("cd9trmrmocvmp9gcd5yhpi8j2"); // f = ED_edge_type(f) == 1 &&
+UNSUPPORTED("9po6nu7kgaeigs2afm08whv2o"); // ND_node_type(agtail(f)) == 1 &&
+UNSUPPORTED("49xjryc5nmnom413y2dy0v7gh"); // ND_in(agtail(f)).size == 1 ?
+UNSUPPORTED("91kaqt4bbz94s6de4uf9wept7"); // ND_in(agtail(f)).list[0] : NULL) {
+UNSUPPORTED("au8chupq2urgaefasiz9q9p4"); // if (aghead(f) == u)
+UNSUPPORTED("9n4w8egcjmjwmkgptavq9x8on"); // ED_head_port(f) = prt;
+UNSUPPORTED("ckzw343313p1917g5yol8mget"); // if (agtail(f) == u)
+UNSUPPORTED("es5btobfx5kd4ziscx7ym4kf7"); // ED_tail_port(f) = prt;
+UNSUPPORTED("6t98dcecgbvbvtpycwiq2ynnj"); // }
+UNSUPPORTED("flupwh3kosf3fkhkxllllt1"); // }
+UNSUPPORTED("dvgyxsnyeqqnyzq696k3vskib"); // }
+UNSUPPORTED("d7reofoel6ngjj7zza32cdi0w"); // ND_has_port(u) = NOT(0); /* kinda pointless, because mincross is already done */
+UNSUPPORTED("c24nfmv9i7o5eoqaymbibp7m7"); // }
+
+throw new UnsupportedOperationException();
+}
+
+
+}