Skip to content

Made changes to the efficient bridge-finding algorithm #92

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 11 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion algorithm/graph_search/bridges/desc.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"Bridges": "An edge in an undirected connected graph is a bridge iff removing it disconnects the graph. A naive solution to finding bridges in a graph is to:<br />1.Delete an edge E<br />2.Perform DFS Exploration to check if the Graph is still connected<br />3.Restore Edge E. E is a bridge only if DFS exploration determines that the graph is disconnected without E. An efficient solution also exists, which uses the idea that edge U-V (U is parent) is a bridge if no subtree rooted at V has a back edge to U or one of its ancestors.",
"Bridges": "An edge in an undirected connected graph is a bridge iff removing it disconnects the graph. A naive solution to finding bridges in a graph is to:<br /> 1.Delete an edge E<br /> 2.Perform DFS Exploration to check if the Graph is still connected<br /> 3.Restore Edge E. E is a bridge only if DFS exploration determines that the graph is disconnected without E. An efficient solution also exists, which uses the idea that edge U-V (U is parent) is a bridge if no subtree rooted at V has a back edge to U or one of its ancestors.<br /> <br /> A more efficient solution, which can find bridges in linear time, is to perform a DFS (depth-first-search) on the graph. At each step: <br /> 1. Number the vertex with a counter. The first vertex visited should be labelled 0, the second vertex labelled 1, etc. <br /> 2. Each vertex should also keep track of the lowest numbered vertex that can be reached with the DFS. This can be done recursively by looking at the smallest \"low\" of its children <br /> 3. If the lowest vertex that can be reached with the DFS is greater than its own label, that means the edge with its parent is a bridge. This is because the vertex cannot reach its parent with the DFS, implying that the edge is not part of a cycle. ",
"Applications": [
"Finding vulnerabilities in Graphs and Electrical Circuits"
],
Expand Down
77 changes: 46 additions & 31 deletions algorithm/graph_search/bridges/efficient/code.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,61 +4,76 @@

var timer = 0, bridges = [], adj = []; //adj keeps track of the neighbors of each node

var util = function (u, visited, disc, low, parent) {
var util = function (u, disc, low, parent) {
logger._print ('');
logger._print ('Visiting node ' + u);
graphTracer._visit (u)._wait ();
graphTracer._leave (u)._wait ();

visited [u] = true;
disc [u] = low [u] = ++timer;
//visited [u] = true;
disc [u] = low [u] = timer++;

logger._print ('Nodes adjacent to ' + u + ' are: [ ' + adj [u] + ' ]');
adj [u].forEach (function (v) {
/*adj [u].forEach (function (v) {
graphTracer._visit (v, u)._wait ();
graphTracer._leave (v, u)._wait ();
});
});*/
var trace = function(v) {
graphTracer._visit (v, u)._wait ();
graphTracer._leave (v, u)._wait ();
}

adj [u].forEach (function (v) {
if (visited [v]) {
logger._print (u + '\'s neighbor ' + v + ' has already been visited. Not visiting it.');
if (disc [v] > -1 && v == parent) {
trace(v);
logger._print (u + '\'s neighbor ' + v + ' is u\'s parent. Not visiting it.');

}
else if (disc[v] > -1 && v != parent) {
trace(v);
logger._print(u + '\'s neighbor ' + v + ' is not u\'s parent. Comparing low[u] with disc[v]')
if(low[u] > disc[v]) {
logger._print('low[' + u + '] is greater than disc[' + v + ']. Setting low[' + u + '] to disc[' + v + ']')
low[u] = disc[v]
}
}

if (!visited [v]) {
if (disc[v] == -1) {
trace(v);
logger._print (u + '\'s neighbor ' + v + ' has not been visited yet');
logger._print ('Setting parent of ' + v + ' to ' + u + ' (parent [v] = u)');
//logger._print ('Setting parent of ' + v + ' to ' + u + ' (parent [v] = u)');

parent [v] = u;
//parent [v] = u;

logger._print ('recursively calling util (' + v + ', [' + visited + '], [' + disc + '], [' + low + '], [' + parent + '])');
util (v, visited, disc, low, parent);
logger._print ('recursively calling util (' + v + ', [' + disc + '], [' + low + '],' + u + ')');
util (v, disc, low, u);

logger._print ('--------------------------------------------------------------------');
logger._print ('Returned from util (' + v + ', [' + visited + '], [' + disc + '], [' + low + '], [' + parent + '])');
logger._print ('notice that the values of visited, disc, low and parent might have changed');
//logger._print ('Returned from util (' + v + ', [' + visited + '], [' + disc + '], [' + low + '], [' + parent + '])');
//logger._print ('notice that the values of visited, disc, low and parent might have changed');

logger._print ('Setting low [' + u + '] to ' + Math.min (low [u], low [v]));
low [u] = Math.min (low [u], low [v]);

if (low [v] > disc [u]) {
logger._print ('low [v] > disc [u], v=' + v + ', u=' + u + ', (' + low [v] + ' > ' + low [u] + ')');
if (low [v] == disc [v]) {
logger._print ('low [' + v + '] == disc [' + v + '], low[v]=' + low[v] + ', disc[v]=' + disc[v]);
logger._print (u + ' -> ' + v + ' is a bridge. Adding u->v to the set of bridges found');
bridges.push ([u, v]);
}
}
else if (v !== parent [u]) {
logger._print (v + ' does not equal parent [' + u + '] (' + parent [u] + ')');
/*else if (low[v] < disc[v]) {
logger._print ('low[' + v + '] is less than disc[' + v + '], so u--v is not a bridge');
logger._print ('Setting low [' + u + '] to ' + Math.min (low [u], disc [v]));
low [u] = Math.min (low [u], disc [v]);
}
low[u] = Math.min (low [u], disc [v]);
}*/
});
};

(function findBridges (graph) {
var visited = filledArray (graph.length, 0);
var parent = filledArray (graph.length, -1);
var disc = filledArray (graph.length, 0);
var low = filledArray (graph.length, 0);
//var visited = filledArray (graph.length, 0);
//var parent = filledArray (graph.length, -1);
var disc = filledArray (graph.length, -1);
var low = filledArray (graph.length, -1);

function filledArray (length, value) {
return Array.apply (null, Array (length)).map (Number.prototype.valueOf, value);
Expand All @@ -75,20 +90,20 @@ var util = function (u, visited, disc, low, parent) {
});
}) ();

for (var i = 0; i < visited.length; i++) { visited [i] = false; }
//for (var i = 0; i < visited.length; i++) { visited [i] = false; }

logger._print ('Initializing <b>visited</b>: ' + visited + ', <b>parent</b>: ' + parent + ', <b>disc</b>: ' + disc + ' <b>low</b>: ' + low);
logger._print ('Initializing: <b>disc</b>: ' + disc + ' <b>low</b>: ' + low);
logger._print ('');
logger._print ('Beginning efficient Bridge Finding');
logger._print ('NOTE: call to util () follows pattern: util (nodeToVisit, visited, disc, low, parent). See code for clarity');
logger._print ('NOTE: call to util () follows pattern: util (nodeToVisit, disc, low, parent). See code for clarity');
logger._print ('');

logger._print ('Starting the main for loop (for each node)');
for (var v = 0; v < graph.length; v++) {
if (!visited [v]) {
logger._print (v + ' has not been visited yet. Calling util (' + v + ', [' + visited + '], [' + disc + '], [' + low + '], [' + parent + ']) from the for loop');
util (v, visited, disc, low, parent);
logger._print ('Returned in for loop after util (' + v + ', [' + visited + '], [' + disc + '], [' + low + '], [' + parent + '])');
if (disc[v] == -1) {
logger._print (v + ' has not been visited yet. Calling util (' + v + ', [' + disc + '], [' + low + '],' + v + ') from the for loop');
util (v, disc, low, v);
logger._print ('Returned in for loop after util (' + v + ', [' + disc + '], [' + low + '], [' + v + '])');
}
}
}) (G);
Expand Down
5 changes: 5 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,13 @@ <h3>
<script src="js/module/undirected_graph.js"></script>
<script src="js/module/weighted_directed_graph.js"></script>
<script src="js/module/weighted_undirected_graph.js"></script>
<<<<<<< HEAD
<script src="js/script.js"></script>

=======
<script src="js/module/chart.js"></script>
<script src="js/script.js"></script>
>>>>>>> refs/remotes/parkjs814/gh-pages
<script>
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
Expand Down
Empty file modified js/lib/ace/ace.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/ext-beautify.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/ext-chromevox.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/ext-elastic_tabstops_lite.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/ext-emmet.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/ext-error_marker.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/ext-keybinding_menu.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/ext-language_tools.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/ext-linking.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/ext-modelist.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/ext-old_ie.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/ext-searchbox.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/ext-settings_menu.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/ext-spellcheck.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/ext-split.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/ext-static_highlight.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/ext-statusbar.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/ext-textarea.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/ext-themelist.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/ext-whitespace.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/keybinding-emacs.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/keybinding-vim.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-abap.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-abc.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-actionscript.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-ada.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-apache_conf.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-applescript.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-asciidoc.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-assembly_x86.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-autohotkey.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-batchfile.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-c9search.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-c_cpp.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-cirru.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-clojure.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-cobol.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-coffee.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-coldfusion.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-csharp.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-css.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-curly.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-d.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-dart.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-diff.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-django.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-dockerfile.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-dot.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-eiffel.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-ejs.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-elixir.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-elm.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-erlang.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-forth.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-fortran.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-ftl.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-gcode.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-gherkin.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-gitignore.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-glsl.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-gobstones.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-golang.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-groovy.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-haml.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-handlebars.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-haskell.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-haxe.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-html.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-html_elixir.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-html_ruby.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-ini.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-io.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-jack.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-jade.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-java.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-javascript.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-json.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-jsoniq.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-jsp.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-jsx.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-julia.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-latex.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-lean.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-less.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-liquid.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-lisp.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-live_script.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-livescript.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-logiql.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-lsl.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-lua.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-luapage.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-lucene.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-makefile.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-markdown.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-mask.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-matlab.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-maze.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-mel.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-mips_assembler.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-mipsassembler.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-mushcode.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-mysql.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-nix.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-nsis.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-objectivec.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-ocaml.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-pascal.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-perl.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-pgsql.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-php.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-plain_text.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-powershell.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-praat.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-prolog.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-properties.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-protobuf.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-python.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-r.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-razor.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-rdoc.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-rhtml.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-rst.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-ruby.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-rust.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-sass.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-scad.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-scala.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-scheme.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-scss.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-sh.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-sjs.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-smarty.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-snippets.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-soy_template.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-space.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-sql.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-sqlserver.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-stylus.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-svg.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-swift.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-swig.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-tcl.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-tex.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-text.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-textile.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-toml.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-twig.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-typescript.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-vala.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-vbscript.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-velocity.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-verilog.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-vhdl.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-wollok.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-xml.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-xquery.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/mode-yaml.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/abap.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/abc.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/actionscript.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/ada.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/apache_conf.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/applescript.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/asciidoc.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/assembly_x86.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/autohotkey.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/batchfile.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/c9search.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/c_cpp.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/cirru.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/clojure.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/cobol.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/coffee.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/coldfusion.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/csharp.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/css.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/curly.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/d.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/dart.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/diff.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/django.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/dockerfile.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/dot.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/eiffel.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/ejs.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/elixir.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/elm.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/erlang.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/forth.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/fortran.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/ftl.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/gcode.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/gherkin.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/gitignore.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/glsl.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/gobstones.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/golang.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/groovy.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/haml.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/handlebars.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/haskell.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/haxe.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/html.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/html_elixir.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/html_ruby.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/ini.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/io.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/jack.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/jade.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/java.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/javascript.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/json.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/jsoniq.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/jsp.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/jsx.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/julia.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/latex.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/lean.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/less.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/liquid.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/lisp.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/live_script.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/livescript.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/logiql.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/lsl.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/lua.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/luapage.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/lucene.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/makefile.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/markdown.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/mask.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/matlab.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/maze.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/mel.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/mips_assembler.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/mipsassembler.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/mushcode.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/mysql.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/nix.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/nsis.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/objectivec.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/ocaml.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/pascal.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/perl.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/pgsql.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/php.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/plain_text.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/powershell.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/praat.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/prolog.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/properties.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/protobuf.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/python.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/r.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/razor.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/rdoc.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/rhtml.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/rst.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/ruby.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/rust.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/sass.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/scad.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/scala.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/scheme.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/scss.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/sh.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/sjs.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/smarty.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/snippets.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/soy_template.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/space.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/sql.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/sqlserver.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/stylus.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/svg.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/swift.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/swig.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/tcl.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/tex.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/text.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/textile.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/toml.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/twig.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/typescript.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/vala.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/vbscript.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/velocity.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/verilog.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/vhdl.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/wollok.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/xml.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/xquery.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/snippets/yaml.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/theme-ambiance.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/theme-chaos.js
100755 → 100644
Empty file.
Empty file modified js/lib/ace/theme-chrome.js
100755 → 100644
Empty file.
Loading