Created
August 7, 2025 00:19
-
-
Save ileasile/415b53cfaa34a5798cd8a58cc28f6448 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells" : [ { | |
| "cell_type" : "code", | |
| "metadata" : { | |
| "collapsed" : true, | |
| "ExecuteTime" : { | |
| "end_time" : "2025-08-07T00:13:36.589463Z", | |
| "start_time" : "2025-08-07T00:13:28.866780Z" | |
| } | |
| }, | |
| "source" : "%use intellij-platform(0.0.3-4-SNAPSHOT)", | |
| "id" : "76a9992435b1b5b4", | |
| "outputs" : [ { | |
| "data" : { | |
| "text/plain" : [ "IntelliJ Platform integration is loaded" ] | |
| }, | |
| "metadata" : { }, | |
| "output_type" : "display_data", | |
| "jetTransient" : { | |
| "display_id" : null | |
| } | |
| } ], | |
| "execution_count" : 1 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-08-07T00:14:07.515772Z", | |
| "start_time" : "2025-08-07T00:14:04.645629Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "USE {\n", " dependencies {\n", " implementation(\"org.graalvm.js:js:21.3.12\")\n", " implementation(\"guru.nidi:graphviz-java-all-j2v8:0.18.1\")\n", " }\n", "}" ], | |
| "id" : "739a3ba6f08e8a77", | |
| "outputs" : [ ], | |
| "execution_count" : 3 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-08-07T00:14:21.310509Z", | |
| "start_time" : "2025-08-07T00:14:21.245131Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "import guru.nidi.graphviz.engine.Format\n", "import guru.nidi.graphviz.engine.Graphviz\n", "\n", "USE {\n", " render<Graphviz> {\n", " it.render(Format.SVG)\n", " .toString()\n", " .let { svgText ->\n", " MIME(\"image/svg+xml\" to svgText)\n", " }\n", " }\n", "}" ], | |
| "id" : "8911100deffa37cd", | |
| "outputs" : [ ], | |
| "execution_count" : 4 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-08-07T00:15:33.336940Z", | |
| "start_time" : "2025-08-07T00:15:33.077220Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "fun <T> drawGraph(\n", " nodes: List<T>,\n", " getParents: (T) -> List<T>,\n", "): Graphviz {\n", " val nodeIndices = nodes.withIndex().associate { it.value to it.index }\n", " val sb = StringBuilder()\n", " sb.appendLine(\"digraph G {\")\n", "\n", " for ((childIndex, child) in nodes.withIndex()) {\n", " for (parent in getParents(child)) {\n", " val parentIndex = nodeIndices[parent]\n", " if (parentIndex != null) {\n", " sb.appendLine(\" $childIndex -> $parentIndex;\")\n", " }\n", " }\n", " }\n", "\n", " sb.appendLine(\"}\")\n", " return Graphviz.fromString(sb.toString())\n", "}" ], | |
| "id" : "646fdc710ed82c7b", | |
| "outputs" : [ ], | |
| "execution_count" : 5 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-08-07T00:15:59.228842Z", | |
| "start_time" : "2025-08-07T00:15:59.132508Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "import com.intellij.ide.plugins.cl.PluginClassLoader\n", "\n", "fun getParents(classLoader: ClassLoader): List<ClassLoader> {\n", " val allParents = when {\n", " classLoader is PluginClassLoader -> classLoader.getAllParentsClassLoaders().toList()\n", " else -> generateSequence(classLoader.parent) { it.parent }.toList()\n", " }\n", "\n", " return allParents.filterNot { it === classLoader }\n", "}" ], | |
| "id" : "60bf2794b8b8fcc1", | |
| "outputs" : [ ], | |
| "execution_count" : 6 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-08-07T00:13:39.260826Z", | |
| "start_time" : "2025-08-07T00:13:39.149514Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "import com.intellij.openapi.extensions.PluginId\n", "\n", "val propPlugin = pluginManager.findEnabledPlugin(PluginId.getId(\"com.intellij.properties\"))" ], | |
| "id" : "4efe5da3c0ffaeee", | |
| "outputs" : [ ], | |
| "execution_count" : 2 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-08-07T00:17:05.859704Z", | |
| "start_time" : "2025-08-07T00:17:05.711743Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : [ "import com.intellij.ide.plugins.PluginMainDescriptor\n", "\n", "val classLoaders = propPlugin.let { plugin ->\n", " plugin as PluginMainDescriptor\n", " plugin.content.modules\n", " .map { it.descriptor.classLoader } + listOf(plugin.classLoader)\n", "}\n", "\n", "val allClassLoaders = classLoaders.flatMap { getParents(it) + it }" ], | |
| "id" : "aadfa71595895bd3", | |
| "outputs" : [ ], | |
| "execution_count" : 7 | |
| }, { | |
| "metadata" : { | |
| "ExecuteTime" : { | |
| "end_time" : "2025-08-07T00:17:54.479433Z", | |
| "start_time" : "2025-08-07T00:17:46.155229Z" | |
| } | |
| }, | |
| "cell_type" : "code", | |
| "source" : "drawGraph(allClassLoaders, ::getParents)", | |
| "id" : "f8a87ed529c8e4ff", | |
| "outputs" : [ { | |
| "data" : { | |
| "image/svg+xml" : "<svg width=\"1356px\" height=\"476px\"\n viewBox=\"0.00 0.00 1356.00 476.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0.0) translate(4.0 472.0)\">\n<title>G</title>\n<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-472 1352,-472 1352,4 -4,4\"/>\n<!-- 0 -->\n<g id=\"node1\" class=\"node\">\n<title>0</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"27\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"27\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">0</text>\n</g>\n<!-- 27 -->\n<g id=\"node2\" class=\"node\">\n<title>27</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"666\" cy=\"-18\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"666\" y=\"-13.8\" font-family=\"Times,serif\" font-size=\"14.00\">27</text>\n</g>\n<!-- 0->27 -->\n<g id=\"edge1\" class=\"edge\">\n<title>0->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M47.46,-77.82C52.42,-75.54 57.8,-73.41 63,-72 170.73,-42.83 514.78,-25.58 628.86,-20.55\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"629.32,-24.03 639.16,-20.1 629.02,-17.04 629.32,-24.03\"/>\n</g>\n<!-- 1 -->\n<g id=\"node3\" class=\"node\">\n<title>1</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"99\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"99\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n</g>\n<!-- 1->27 -->\n<g id=\"edge2\" class=\"edge\">\n<title>1->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M119.48,-77.86C124.43,-75.58 129.8,-73.44 135,-72 314.98,-22.12 540.78,-17.93 628.63,-18.41\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"628.86,-21.91 638.89,-18.49 628.92,-14.91 628.86,-21.91\"/>\n</g>\n<!-- 2 -->\n<g id=\"node4\" class=\"node\">\n<title>2</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"171\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"171\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n</g>\n<!-- 2->27 -->\n<g id=\"edge3\" class=\"edge\">\n<title>2->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M192.32,-78.85C198.54,-76.25 205.44,-73.71 212,-72 363.09,-32.67 550.1,-22.49 628.58,-19.88\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"629.03,-23.37 638.91,-19.56 628.81,-16.37 629.03,-23.37\"/>\n</g>\n<!-- 4 -->\n<g id=\"node5\" class=\"node\">\n<title>4</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"226\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"226\" y=\"-157.8\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n</g>\n<!-- 4->27 -->\n<g id=\"edge7\" class=\"edge\">\n<title>4->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M224.29,-143.77C223.33,-123.45 225.22,-90.17 245,-72 300.52,-21.01 536.31,-17.68 628.68,-18.39\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"628.92,-21.89 638.95,-18.49 628.99,-14.89 628.92,-21.89\"/>\n</g>\n<!-- 4->2 -->\n<g id=\"edge6\" class=\"edge\">\n<title>4->2</title>\n<path fill=\"none\" stroke=\"black\" d=\"M214.07,-145.81C206.79,-136.55 197.34,-124.52 189.15,-114.09\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"191.84,-111.86 182.91,-106.16 186.34,-116.18 191.84,-111.86\"/>\n</g>\n<!-- 9 -->\n<g id=\"node6\" class=\"node\">\n<title>9</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"573\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"573\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n</g>\n<!-- 4->9 -->\n<g id=\"edge4\" class=\"edge\">\n<title>4->9</title>\n<path fill=\"none\" stroke=\"black\" d=\"M250.94,-154.96C265.26,-151.58 283.6,-147.37 300,-144 388.05,-125.93 410.95,-126.07 499,-108 511.81,-105.37 525.81,-102.23 538.15,-99.36\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"539.12,-102.73 548.06,-97.04 537.52,-95.91 539.12,-102.73\"/>\n</g>\n<!-- 28 -->\n<g id=\"node7\" class=\"node\">\n<title>28</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"281\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"281\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">28</text>\n</g>\n<!-- 4->28 -->\n<g id=\"edge5\" class=\"edge\">\n<title>4->28</title>\n<path fill=\"none\" stroke=\"black\" d=\"M237.93,-145.81C245.21,-136.55 254.66,-124.52 262.85,-114.09\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"265.66,-116.18 269.09,-106.16 260.16,-111.86 265.66,-116.18\"/>\n</g>\n<!-- 9->27 -->\n<g id=\"edge13\" class=\"edge\">\n<title>9->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M590.49,-75.83C604.52,-65.27 624.42,-50.3 640.26,-38.37\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"642.7,-40.92 648.59,-32.11 638.49,-35.32 642.7,-40.92\"/>\n</g>\n<!-- 28->27 -->\n<g id=\"edge62\" class=\"edge\">\n<title>28->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M302.79,-78.83C308.9,-76.29 315.62,-73.79 322,-72 431.19,-41.43 565.13,-27.2 628.87,-21.78\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"629.54,-25.24 639.21,-20.93 628.96,-18.26 629.54,-25.24\"/>\n</g>\n<!-- 5 -->\n<g id=\"node8\" class=\"node\">\n<title>5</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"391\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"391\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n</g>\n<!-- 5->27 -->\n<g id=\"edge8\" class=\"edge\">\n<title>5->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M411.61,-78.3C416.56,-76.01 421.9,-73.75 427,-72 496.91,-48.08 582.09,-32.2 629.56,-24.48\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"630.34,-27.9 639.66,-22.87 629.23,-20.99 630.34,-27.9\"/>\n</g>\n<!-- 6 -->\n<g id=\"node9\" class=\"node\">\n<title>6</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"463\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"463\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n</g>\n<!-- 6->27 -->\n<g id=\"edge9\" class=\"edge\">\n<title>6->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M485.01,-79.51C491.12,-76.97 497.79,-74.3 504,-72 547.89,-55.75 599.37,-39.35 632.32,-29.19\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"633.39,-32.52 641.92,-26.24 631.33,-25.83 633.39,-32.52\"/>\n</g>\n<!-- 8 -->\n<g id=\"node10\" class=\"node\">\n<title>8</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"408\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"408\" y=\"-157.8\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n</g>\n<!-- 8->27 -->\n<g id=\"edge12\" class=\"edge\">\n<title>8->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M429.09,-150.5C448.11,-140.63 476.47,-124.88 499,-108 517.62,-94.05 517.47,-84.63 537,-72 566.75,-52.76 604.63,-38.2 631.63,-29.26\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"632.96,-32.5 641.4,-26.11 630.81,-25.84 632.96,-32.5\"/>\n</g>\n<!-- 8->9 -->\n<g id=\"edge10\" class=\"edge\">\n<title>8->9</title>\n<path fill=\"none\" stroke=\"black\" d=\"M430.25,-151.56C458.87,-139.42 508.76,-118.25 541.33,-104.44\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"543,-107.53 550.84,-100.4 540.26,-101.09 543,-107.53\"/>\n</g>\n<!-- 8->28 -->\n<g id=\"edge11\" class=\"edge\">\n<title>8->28</title>\n<path fill=\"none\" stroke=\"black\" d=\"M387.88,-149.91C367.01,-138.41 334.16,-120.3 310.39,-107.2\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"311.9,-104.03 301.45,-102.27 308.52,-110.16 311.9,-104.03\"/>\n</g>\n<!-- 10 -->\n<g id=\"node11\" class=\"node\">\n<title>10</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"856\" cy=\"-378\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"856\" y=\"-373.8\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n</g>\n<!-- 10->27 -->\n<g id=\"edge23\" class=\"edge\">\n<title>10->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M877.14,-366.66C922.04,-343.14 1020.5,-282.52 991,-216 952.35,-128.85 914.62,-119.58 832,-72 790.54,-48.13 736.96,-33.52 702.05,-25.85\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"702.36,-22.33 691.85,-23.68 700.91,-29.18 702.36,-22.33\"/>\n</g>\n<!-- 10->9 -->\n<g id=\"edge16\" class=\"edge\">\n<title>10->9</title>\n<path fill=\"none\" stroke=\"black\" d=\"M865.07,-360.87C870.28,-350.65 876.31,-336.96 879,-324 888.84,-276.61 893.13,-255.39 865,-216 804.29,-130.98 673.51,-103.34 609.63,-94.71\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"609.96,-91.23 599.6,-93.44 609.08,-98.17 609.96,-91.23\"/>\n</g>\n<!-- 13 -->\n<g id=\"node12\" class=\"node\">\n<title>13</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"1077\" cy=\"-234\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"1077\" y=\"-229.8\" font-family=\"Times,serif\" font-size=\"14.00\">13</text>\n</g>\n<!-- 10->13 -->\n<g id=\"edge14\" class=\"edge\">\n<title>10->13</title>\n<path fill=\"none\" stroke=\"black\" d=\"M880.42,-369.89C907.2,-361.43 950.76,-345.68 984,-324 1012.63,-305.33 1040.24,-277.2 1057.83,-257.58\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1060.53,-259.82 1064.51,-250.01 1055.27,-255.19 1060.53,-259.82\"/>\n</g>\n<!-- 14 -->\n<g id=\"node13\" class=\"node\">\n<title>14</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"1101\" cy=\"-306\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"1101\" y=\"-301.8\" font-family=\"Times,serif\" font-size=\"14.00\">14</text>\n</g>\n<!-- 10->14 -->\n<g id=\"edge15\" class=\"edge\">\n<title>10->14</title>\n<path fill=\"none\" stroke=\"black\" d=\"M881.45,-371.58C920.39,-363.03 996.86,-345.18 1060,-324 1063.14,-322.95 1066.38,-321.77 1069.61,-320.53\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1071.1,-323.71 1079.08,-316.75 1068.5,-317.21 1071.1,-323.71\"/>\n</g>\n<!-- 15 -->\n<g id=\"node14\" class=\"node\">\n<title>15</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"659\" cy=\"-306\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"659\" y=\"-301.8\" font-family=\"Times,serif\" font-size=\"14.00\">15</text>\n</g>\n<!-- 10->15 -->\n<g id=\"edge17\" class=\"edge\">\n<title>10->15</title>\n<path fill=\"none\" stroke=\"black\" d=\"M832.63,-368.7C797.68,-356.28 731.65,-332.81 691.86,-318.68\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"692.94,-315.34 682.34,-315.29 690.59,-321.94 692.94,-315.34\"/>\n</g>\n<!-- 16 -->\n<g id=\"node15\" class=\"node\">\n<title>16</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"807\" cy=\"-234\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"807\" y=\"-229.8\" font-family=\"Times,serif\" font-size=\"14.00\">16</text>\n</g>\n<!-- 10->16 -->\n<g id=\"edge18\" class=\"edge\">\n<title>10->16</title>\n<path fill=\"none\" stroke=\"black\" d=\"M850.19,-360.15C841.75,-335.71 826.04,-290.17 816.07,-261.29\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"819.38,-260.14 812.81,-251.82 812.76,-262.42 819.38,-260.14\"/>\n</g>\n<!-- 17 -->\n<g id=\"node16\" class=\"node\">\n<title>17</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"545\" cy=\"-234\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"545\" y=\"-229.8\" font-family=\"Times,serif\" font-size=\"14.00\">17</text>\n</g>\n<!-- 10->17 -->\n<g id=\"edge19\" class=\"edge\">\n<title>10->17</title>\n<path fill=\"none\" stroke=\"black\" d=\"M828.87,-376.18C783.25,-373.69 689.64,-363.71 623,-324 596.25,-308.06 573.83,-279.8 559.99,-259.39\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"562.84,-257.35 554.43,-250.91 556.99,-261.19 562.84,-257.35\"/>\n</g>\n<!-- 18 -->\n<g id=\"node17\" class=\"node\">\n<title>18</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"955\" cy=\"-234\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"955\" y=\"-229.8\" font-family=\"Times,serif\" font-size=\"14.00\">18</text>\n</g>\n<!-- 10->18 -->\n<g id=\"edge20\" class=\"edge\">\n<title>10->18</title>\n<path fill=\"none\" stroke=\"black\" d=\"M871.8,-363.19C882.8,-353.06 897.36,-338.57 908,-324 922.5,-304.15 935.26,-279.23 943.81,-260.81\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"947.06,-262.13 948,-251.58 940.68,-259.24 947.06,-262.13\"/>\n</g>\n<!-- 19 -->\n<g id=\"node18\" class=\"node\">\n<title>19</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"632\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"632\" y=\"-157.8\" font-family=\"Times,serif\" font-size=\"14.00\">19</text>\n</g>\n<!-- 10->19 -->\n<g id=\"edge21\" class=\"edge\">\n<title>10->19</title>\n<path fill=\"none\" stroke=\"black\" d=\"M840.95,-362.63C802.38,-325.77 699.79,-227.77 654.28,-184.29\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"656.63,-181.69 646.98,-177.31 651.79,-186.75 656.63,-181.69\"/>\n</g>\n<!-- 20 -->\n<g id=\"node19\" class=\"node\">\n<title>20</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"704\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"704\" y=\"-157.8\" font-family=\"Times,serif\" font-size=\"14.00\">20</text>\n</g>\n<!-- 10->20 -->\n<g id=\"edge22\" class=\"edge\">\n<title>10->20</title>\n<path fill=\"none\" stroke=\"black\" d=\"M860.03,-359.92C866.47,-328.1 875.31,-259.07 843,-216 819.02,-184.03 773.24,-171.34 740.78,-166.31\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"741.13,-162.83 730.75,-164.93 740.18,-169.76 741.13,-162.83\"/>\n</g>\n<!-- 13->27 -->\n<g id=\"edge28\" class=\"edge\">\n<title>13->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1076.42,-215.94C1074.28,-182.57 1064.5,-108.69 1020,-72 972.22,-32.6 784.28,-22.43 703.37,-19.85\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"703.24,-16.34 693.14,-19.55 703.04,-23.34 703.24,-16.34\"/>\n</g>\n<!-- 14->27 -->\n<g id=\"edge30\" class=\"edge\">\n<title>14->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1110.8,-288.99C1134.9,-247.4 1191.1,-134.8 1135,-72 1106.33,-39.91 809,-24.8 703.16,-20.41\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"703.08,-16.9 692.95,-19.99 702.8,-23.9 703.08,-16.9\"/>\n</g>\n<!-- 14->13 -->\n<g id=\"edge29\" class=\"edge\">\n<title>14->13</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1095.19,-288.05C1092.45,-280.06 1089.11,-270.33 1086.05,-261.4\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1089.31,-260.11 1082.76,-251.79 1082.69,-262.38 1089.31,-260.11\"/>\n</g>\n<!-- 15->27 -->\n<g id=\"edge37\" class=\"edge\">\n<title>15->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M672.79,-290.32C692.34,-268.36 727.17,-224.74 740,-180 754.95,-127.88 714.24,-71.21 687.42,-40.97\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"689.94,-38.54 680.62,-33.51 684.77,-43.26 689.94,-38.54\"/>\n</g>\n<!-- 15->9 -->\n<g id=\"edge34\" class=\"edge\">\n<title>15->9</title>\n<path fill=\"none\" stroke=\"black\" d=\"M631.83,-304.29C596.76,-301.74 536.91,-291.46 509,-252 477.62,-207.63 522.42,-145.69 551.49,-113.08\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"554.31,-115.19 558.49,-105.45 549.15,-110.46 554.31,-115.19\"/>\n</g>\n<!-- 15->16 -->\n<g id=\"edge31\" class=\"edge\">\n<title>15->16</title>\n<path fill=\"none\" stroke=\"black\" d=\"M680.52,-294.82C705.73,-282.9 747.68,-263.06 776.3,-249.52\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"777.91,-252.63 785.45,-245.19 774.92,-246.3 777.91,-252.63\"/>\n</g>\n<!-- 15->17 -->\n<g id=\"edge32\" class=\"edge\">\n<title>15->17</title>\n<path fill=\"none\" stroke=\"black\" d=\"M639.66,-293.13C621.4,-281.91 593.81,-264.97 573.11,-252.26\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"574.79,-249.18 564.43,-246.93 571.12,-255.15 574.79,-249.18\"/>\n</g>\n<!-- 15->18 -->\n<g id=\"edge33\" class=\"edge\">\n<title>15->18</title>\n<path fill=\"none\" stroke=\"black\" d=\"M683.98,-299.09C736.68,-286.63 859.36,-257.62 919.91,-243.3\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"920.85,-246.67 929.77,-240.97 919.23,-239.86 920.85,-246.67\"/>\n</g>\n<!-- 15->19 -->\n<g id=\"edge35\" class=\"edge\">\n<title>15->19</title>\n<path fill=\"none\" stroke=\"black\" d=\"M655.74,-287.87C651.14,-263.67 642.69,-219.21 637.21,-190.39\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"640.57,-189.36 635.27,-180.19 633.7,-190.67 640.57,-189.36\"/>\n</g>\n<!-- 15->20 -->\n<g id=\"edge36\" class=\"edge\">\n<title>15->20</title>\n<path fill=\"none\" stroke=\"black\" d=\"M664.34,-288.15C672.05,-263.81 686.39,-218.57 695.55,-189.67\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"698.98,-190.42 698.67,-179.82 692.31,-188.3 698.98,-190.42\"/>\n</g>\n<!-- 16->27 -->\n<g id=\"edge38\" class=\"edge\">\n<title>16->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M807.99,-215.97C808.93,-184.24 806.61,-115.35 773,-72 755.22,-49.06 724.88,-35.36 701.04,-27.66\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"701.87,-24.25 691.28,-24.71 699.84,-30.95 701.87,-24.25\"/>\n</g>\n<!-- 17->27 -->\n<g id=\"edge42\" class=\"edge\">\n<title>17->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M554.09,-216.92C575.04,-179.88 626.79,-88.35 651.89,-43.95\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"655.09,-45.41 656.96,-34.98 649,-41.96 655.09,-45.41\"/>\n</g>\n<!-- 17->9 -->\n<g id=\"edge41\" class=\"edge\">\n<title>17->9</title>\n<path fill=\"none\" stroke=\"black\" d=\"M548.38,-215.87C553.17,-191.56 561.99,-146.82 567.67,-118.01\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"571.11,-118.68 569.61,-108.19 564.24,-117.32 571.11,-118.68\"/>\n</g>\n<!-- 17->19 -->\n<g id=\"edge39\" class=\"edge\">\n<title>17->19</title>\n<path fill=\"none\" stroke=\"black\" d=\"M561.77,-219.5C574.65,-209.14 592.63,-194.67 607.18,-182.97\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"609.68,-185.45 615.28,-176.46 605.29,-180 609.68,-185.45\"/>\n</g>\n<!-- 17->20 -->\n<g id=\"edge40\" class=\"edge\">\n<title>17->20</title>\n<path fill=\"none\" stroke=\"black\" d=\"M567.32,-223.65C592.04,-213.24 633.03,-195.78 668,-180 669.8,-179.19 671.64,-178.35 673.49,-177.49\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"675.15,-180.58 682.74,-173.19 672.19,-174.24 675.15,-180.58\"/>\n</g>\n<!-- 18->27 -->\n<g id=\"edge43\" class=\"edge\">\n<title>18->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M943.44,-217.67C919.21,-186.44 860.01,-114.8 796,-72 766.18,-52.06 727.67,-37.53 700.33,-28.78\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"701.02,-25.33 690.43,-25.71 698.95,-32.01 701.02,-25.33\"/>\n</g>\n<!-- 19->27 -->\n<g id=\"edge45\" class=\"edge\">\n<title>19->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M636.03,-144.15C641.86,-119.81 652.69,-74.57 659.62,-45.67\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"663.05,-46.37 661.97,-35.82 656.24,-44.74 663.05,-46.37\"/>\n</g>\n<!-- 19->9 -->\n<g id=\"edge44\" class=\"edge\">\n<title>19->9</title>\n<path fill=\"none\" stroke=\"black\" d=\"M619.2,-145.81C611.39,-136.55 601.25,-124.52 592.47,-114.09\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"594.9,-111.55 585.78,-106.16 589.55,-116.06 594.9,-111.55\"/>\n</g>\n<!-- 20->27 -->\n<g id=\"edge46\" class=\"edge\">\n<title>20->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M699.49,-144.15C692.98,-119.81 680.87,-74.57 673.14,-45.67\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"676.47,-44.58 670.5,-35.82 669.71,-46.39 676.47,-44.58\"/>\n</g>\n<!-- 11 -->\n<g id=\"node20\" class=\"node\">\n<title>11</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"1099\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"1099\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">11</text>\n</g>\n<!-- 11->27 -->\n<g id=\"edge24\" class=\"edge\">\n<title>11->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1077.66,-78.93C1071.44,-76.33 1064.55,-73.77 1058,-72 930.61,-37.6 773.63,-24.98 703.23,-20.83\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"703.27,-17.32 693.09,-20.25 702.88,-24.31 703.27,-17.32\"/>\n</g>\n<!-- 12 -->\n<g id=\"node21\" class=\"node\">\n<title>12</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"336\" cy=\"-162\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"336\" y=\"-157.8\" font-family=\"Times,serif\" font-size=\"14.00\">12</text>\n</g>\n<!-- 12->27 -->\n<g id=\"edge27\" class=\"edge\">\n<title>12->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M334.43,-143.91C333.6,-123.74 335.62,-90.59 355,-72 393.61,-34.96 554.45,-23.59 628.45,-20.28\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"628.87,-23.76 638.71,-19.84 628.57,-16.77 628.87,-23.76\"/>\n</g>\n<!-- 12->9 -->\n<g id=\"edge25\" class=\"edge\">\n<title>12->9</title>\n<path fill=\"none\" stroke=\"black\" d=\"M357.05,-150.27C361.89,-148.03 367.06,-145.8 372,-144 402.47,-132.9 489.22,-111.26 538.21,-99.36\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"539.16,-102.73 548.06,-96.97 537.52,-95.92 539.16,-102.73\"/>\n</g>\n<!-- 12->28 -->\n<g id=\"edge26\" class=\"edge\">\n<title>12->28</title>\n<path fill=\"none\" stroke=\"black\" d=\"M324.07,-145.81C316.79,-136.55 307.34,-124.52 299.15,-114.09\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"301.84,-111.86 292.91,-106.16 296.34,-116.18 301.84,-111.86\"/>\n</g>\n<!-- 22 -->\n<g id=\"node22\" class=\"node\">\n<title>22</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"659\" cy=\"-450\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"659\" y=\"-445.8\" font-family=\"Times,serif\" font-size=\"14.00\">22</text>\n</g>\n<!-- 22->27 -->\n<g id=\"edge59\" class=\"edge\">\n<title>22->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M686.08,-447.93C770.05,-444.29 1024.82,-430.59 1099,-396 1151.44,-371.55 1194,-364.86 1194,-307 1194,-307 1194,-307 1194,-161 1194,-118.33 1192.05,-97.72 1158,-72 1121.84,-44.69 811.13,-26.4 702.95,-20.81\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"703,-17.31 692.83,-20.29 702.64,-24.3 703,-17.31\"/>\n</g>\n<!-- 22->9 -->\n<g id=\"edge47\" class=\"edge\">\n<title>22->9</title>\n<path fill=\"none\" stroke=\"black\" d=\"M633.31,-444.03C606.13,-437.49 563.7,-423.46 538,-396 514.75,-371.16 521.7,-356.61 512,-324 489.16,-247.25 464.2,-213.49 504,-144 512.99,-128.3 528.67,-115.69 542.81,-106.72\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"545.01,-109.48 551.8,-101.35 541.42,-103.47 545.01,-109.48\"/>\n</g>\n<!-- 22->28 -->\n<g id=\"edge49\" class=\"edge\">\n<title>22->28</title>\n<path fill=\"none\" stroke=\"black\" d=\"M631.78,-449.27C578.41,-448.72 457.62,-441.99 370,-396 320.47,-370 281,-362.94 281,-307 281,-307 281,-307 281,-233 281,-193 281,-146.65 281,-118.08\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"284.5,-118.05 281,-108.05 277.5,-118.05 284.5,-118.05\"/>\n</g>\n<!-- 22->10 -->\n<g id=\"edge48\" class=\"edge\">\n<title>22->10</title>\n<path fill=\"none\" stroke=\"black\" d=\"M682.37,-440.7C717.32,-428.28 783.35,-404.81 823.14,-390.68\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"824.41,-393.94 832.66,-387.29 822.06,-387.34 824.41,-393.94\"/>\n</g>\n<!-- 22->13 -->\n<g id=\"edge51\" class=\"edge\">\n<title>22->13</title>\n<path fill=\"none\" stroke=\"black\" d=\"M685.86,-447.46C763.93,-442.67 989.47,-426.49 1056,-396 1099.79,-375.93 1117.27,-367.94 1137,-324 1143.55,-309.4 1143.58,-302.59 1137,-288 1130.36,-273.28 1117.39,-261 1105.2,-251.99\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1107.19,-249.1 1096.98,-246.27 1103.19,-254.85 1107.19,-249.1\"/>\n</g>\n<!-- 22->14 -->\n<g id=\"edge52\" class=\"edge\">\n<title>22->14</title>\n<path fill=\"none\" stroke=\"black\" d=\"M685.82,-447.46C759.53,-442.86 963.57,-427.54 1022,-396 1049.72,-381.04 1072.44,-352.34 1086.28,-331.57\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"1089.37,-333.24 1091.83,-322.93 1083.48,-329.45 1089.37,-333.24\"/>\n</g>\n<!-- 22->15 -->\n<g id=\"edge53\" class=\"edge\">\n<title>22->15</title>\n<path fill=\"none\" stroke=\"black\" d=\"M659,-431.87C659,-407.67 659,-363.21 659,-334.39\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"662.5,-334.19 659,-324.19 655.5,-334.19 662.5,-334.19\"/>\n</g>\n<!-- 22->16 -->\n<g id=\"edge54\" class=\"edge\">\n<title>22->16</title>\n<path fill=\"none\" stroke=\"black\" d=\"M669.88,-433.26C695.49,-396.24 759.69,-303.41 790.28,-259.18\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"793.29,-260.97 796.1,-250.76 787.53,-256.99 793.29,-260.97\"/>\n</g>\n<!-- 22->17 -->\n<g id=\"edge55\" class=\"edge\">\n<title>22->17</title>\n<path fill=\"none\" stroke=\"black\" d=\"M638.57,-438.17C623.05,-428.94 602.35,-414.27 590,-396 562,-354.55 551.3,-295.94 547.3,-262.06\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"550.77,-261.56 546.23,-251.98 543.81,-262.3 550.77,-261.56\"/>\n</g>\n<!-- 22->18 -->\n<g id=\"edge56\" class=\"edge\">\n<title>22->18</title>\n<path fill=\"none\" stroke=\"black\" d=\"M686.01,-449.68C732.69,-449.48 829.45,-442.93 892,-396 934.61,-364.03 948.42,-299.01 952.88,-262.12\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"956.37,-262.4 953.95,-252.08 949.41,-261.66 956.37,-262.4\"/>\n</g>\n<!-- 22->19 -->\n<g id=\"edge57\" class=\"edge\">\n<title>22->19</title>\n<path fill=\"none\" stroke=\"black\" d=\"M635.98,-440.58C615.66,-432.1 586.48,-417.24 568,-396 522.6,-343.83 522.36,-319.86 509,-252 505.91,-236.3 500.21,-229.37 509,-216 528.01,-187.11 566.45,-173.9 595.33,-167.9\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"596.29,-171.28 605.48,-166 595,-164.4 596.29,-171.28\"/>\n</g>\n<!-- 22->20 -->\n<g id=\"edge58\" class=\"edge\">\n<title>22->20</title>\n<path fill=\"none\" stroke=\"black\" d=\"M649.98,-432.82C634.87,-403.59 607.57,-340.19 623,-288 634.81,-248.07 663.8,-208.92 683.7,-185.36\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"686.42,-187.56 690.31,-177.71 681.13,-182.99 686.42,-187.56\"/>\n</g>\n<!-- 22->12 -->\n<g id=\"edge50\" class=\"edge\">\n<title>22->12</title>\n<path fill=\"none\" stroke=\"black\" d=\"M632.05,-447C572.74,-442.07 433.51,-427.36 400,-396 341.63,-341.37 334.7,-238.94 334.97,-190.16\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"338.47,-190.12 335.13,-180.06 331.47,-190 338.47,-190.12\"/>\n</g>\n<!-- 24 -->\n<g id=\"node23\" class=\"node\">\n<title>24</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"1249\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"1249\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">24</text>\n</g>\n<!-- 24->27 -->\n<g id=\"edge60\" class=\"edge\">\n<title>24->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1227.7,-78.77C1221.48,-76.17 1214.58,-73.65 1208,-72 1022.48,-25.56 791.75,-19.42 703.08,-18.89\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"703,-15.39 692.98,-18.85 702.97,-22.39 703,-15.39\"/>\n</g>\n<!-- 26 -->\n<g id=\"node24\" class=\"node\">\n<title>26</title>\n<ellipse fill=\"none\" stroke=\"black\" cx=\"1321\" cy=\"-90\" rx=\"27\" ry=\"18\"/>\n<text text-anchor=\"middle\" x=\"1321\" y=\"-85.8\" font-family=\"Times,serif\" font-size=\"14.00\">26</text>\n</g>\n<!-- 26->27 -->\n<g id=\"edge61\" class=\"edge\">\n<title>26->27</title>\n<path fill=\"none\" stroke=\"black\" d=\"M1300.54,-77.81C1295.58,-75.53 1290.21,-73.4 1285,-72 1174.04,-42.09 818.9,-25.25 702.98,-20.45\"/>\n<polygon fill=\"black\" stroke=\"black\" points=\"702.97,-16.94 692.84,-20.03 702.69,-23.94 702.97,-16.94\"/>\n</g>\n</g>\n</svg>\n" | |
| }, | |
| "execution_count" : 8, | |
| "metadata" : { }, | |
| "output_type" : "execute_result" | |
| } ], | |
| "execution_count" : 8 | |
| }, { | |
| "metadata" : { }, | |
| "cell_type" : "code", | |
| "outputs" : [ ], | |
| "execution_count" : null, | |
| "source" : "", | |
| "id" : "e7649e28f977a174" | |
| } ], | |
| "metadata" : { | |
| "kernelspec" : { | |
| "display_name" : "Kotlin", | |
| "language" : "kotlin", | |
| "name" : "kotlin" | |
| }, | |
| "language_info" : { | |
| "name" : "kotlin", | |
| "version" : "2.2.20-Beta2", | |
| "mimetype" : "text/x-kotlin", | |
| "file_extension" : ".kt", | |
| "pygments_lexer" : "kotlin", | |
| "codemirror_mode" : "text/x-kotlin", | |
| "nbconvert_exporter" : "" | |
| }, | |
| "ktnbPluginMetadata" : { | |
| "sessionRunMode" : "IDE_PROCESS" | |
| } | |
| }, | |
| "nbformat" : 4, | |
| "nbformat_minor" : 0 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment