<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="1087px" height="189px" viewBox="0 0 1087 189" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 39.1 (31720) - http://www.bohemiancoding.com/sketch -->
<title>black-logo-word</title>
<desc>Created with Sketch.</desc>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Group-2" fill="#292929">
<path d="M94.5,189 C146.690909,189 189,146.690909 189,94.5 C189,42.3090911 146.690909,0 94.5,0 C42.3090911,0 0,42.3090911 0,94.5 C0,146.690909 42.3090911,189 94.5,189 Z M94.5,187.534884 C43.1182525,187.534884 1.46511628,145.881747 1.46511628,94.5 C1.46511628,43.1182525 43.1182525,1.46511628 94.5,1.46511628 C145.881747,1.46511628 187.534884,43.1182525 187.534884,94.5 C187.534884,145.881747 145.881747,187.534884 94.5,187.534884 Z M94.5,178.011628 C140.622199,178.011628 178.011628,140.622199 178.011628,94.5 C178.011628,48.3778015 140.622199,10.9883721 94.5,10.9883721 C48.3778015,10.9883721 10.9883721,48.3778015 10.9883721,94.5 C10.9883721,140.622199 48.3778015,178.011628 94.5,178.011628 Z M94.5,175.081395 C49.9961242,175.081395 13.9186047,139.003876 13.9186047,94.5 C13.9186047,49.9961242 49.9961242,13.9186047 94.5,13.9186047 C139.003876,13.9186047 175.081395,49.9961242 175.081395,94.5 C175.081395,139.003876 139.003876,175.081395 94.5,175.081395 Z M94.5,167.023256 C134.553488,167.023256 167.023256,134.553488 167.023256,94.5 C167.023256,54.4465118 134.553488,21.9767442 94.5,21.9767442 C54.4465118,21.9767442 21.9767442,54.4465118 21.9767442,94.5 C21.9767442,134.553488 54.4465118,167.023256 94.5,167.023256 Z M94.5,162.627907 C56.8739959,162.627907 26.372093,132.126004 26.372093,94.5 C26.372093,56.8739959 56.8739959,26.372093 94.5,26.372093 C132.126004,26.372093 162.627907,56.8739959 162.627907,94.5 C162.627907,132.126004 132.126004,162.627907 94.5,162.627907 Z M94.5,156.034884 C128.484778,156.034884 156.034884,128.484778 156.034884,94.5 C156.034884,60.5152221 128.484778,32.9651163 94.5,32.9651163 C60.5152221,32.9651163 32.9651163,60.5152221 32.9651163,94.5 C32.9651163,128.484778 60.5152221,156.034884 94.5,156.034884 Z M94.5,150.174419 C63.7518677,150.174419 38.8255814,125.248132 38.8255814,94.5 C38.8255814,63.7518677 63.7518677,38.8255814 94.5,38.8255814 C125.248132,38.8255814 150.174419,63.7518677 150.174419,94.5 C150.174419,125.248132 125.248132,150.174419 94.5,150.174419 Z M94.5,145.046512 C122.416068,145.046512 145.046512,122.416068 145.046512,94.5 C145.046512,66.5839325 122.416068,43.9534884 94.5,43.9534884 C66.5839325,43.9534884 43.9534884,66.5839325 43.9534884,94.5 C43.9534884,122.416068 66.5839325,145.046512 94.5,145.046512 Z M94.5,137.72093 C70.6297394,137.72093 51.2790698,118.370261 51.2790698,94.5 C51.2790698,70.6297394 70.6297394,51.2790698 94.5,51.2790698 C118.370261,51.2790698 137.72093,70.6297394 137.72093,94.5 C137.72093,118.370261 118.370261,137.72093 94.5,137.72093 Z M94.5,134.05814 C116.347357,134.05814 134.05814,116.347357 134.05814,94.5 C134.05814,72.6526428 116.347357,54.9418605 94.5,54.9418605 C72.6526428,54.9418605 54.9418605,72.6526428 54.9418605,94.5 C54.9418605,116.347357 72.6526428,134.05814 94.5,134.05814 Z M94.5,125.267442 C77.5076111,125.267442 63.7325581,111.492389 63.7325581,94.5 C63.7325581,77.5076111 77.5076111,63.7325581 94.5,63.7325581 C111.492389,63.7325581 125.267442,77.5076111 125.267442,94.5 C125.267442,111.492389 111.492389,125.267442 94.5,125.267442 Z M94.5,123.069767 C110.278647,123.069767 123.069767,110.278647 123.069767,94.5 C123.069767,78.7213531 110.278647,65.9302326 94.5,65.9302326 C78.7213531,65.9302326 65.9302326,78.7213531 65.9302326,94.5 C65.9302326,110.278647 78.7213531,123.069767 94.5,123.069767 Z M94.5,112.813953 C84.3854828,112.813953 76.1860465,104.614517 76.1860465,94.5 C76.1860465,84.3854828 84.3854828,76.1860465 94.5,76.1860465 C104.614517,76.1860465 112.813953,84.3854828 112.813953,94.5 C112.813953,104.614517 104.614517,112.813953 94.5,112.813953 Z M94.5,112.081395 C104.209937,112.081395 112.081395,104.209937 112.081395,94.5 C112.081395,84.7900635 104.209937,76.9186047 94.5,76.9186047 C84.7900635,76.9186047 76.9186047,84.7900635 76.9186047,94.5 C76.9186047,104.209937 84.7900635,112.081395 94.5,112.081395 Z M94.5,100.360465 C91.2633545,100.360465 88.6395349,97.7366455 88.6395349,94.5 C88.6395349,91.2633545 91.2633545,88.6395349 94.5,88.6395349 C97.7366455,88.6395349 100.360465,91.2633545 100.360465,94.5 C100.360465,97.7366455 97.7366455,100.360465 94.5,100.360465 Z" id="Combined-Shape-Copy-71"></path>
<path d="M225,21 L225,163.8 L256.4,163.8 L256.4,104.8 L316.2,104.8 L316.2,80.4 L256.4,80.4 L256.4,47.4 L325.4,47.4 L325.4,21 L225,21 Z M403.0125,101 L356.8125,101 C356.945834,98.99999 357.379163,96.733346 358.1125,94.2 C358.845837,91.666654 360.112491,89.266678 361.9125,87 C363.712509,84.733322 366.112485,82.833341 369.1125,81.3 C372.112515,79.766659 375.879144,79 380.4125,79 C387.345868,79 392.512483,80.866648 395.9125,84.6 C399.312517,88.333352 401.67916,93.799964 403.0125,101 L403.0125,101 Z M356.8125,119 L431.4125,119 C431.945836,110.99996 431.279176,103.33337 429.4125,96 C427.545824,88.66663 424.512521,82.133362 420.3125,76.4 C416.112479,70.666638 410.745866,66.100017 404.2125,62.7 C397.679134,59.299983 390.012544,57.6 381.2125,57.6 C373.345794,57.6 366.179199,58.999986 359.7125,61.8 C353.245801,64.600014 347.67919,68.433309 343.0125,73.3 C338.34581,78.166691 334.745846,83.9333 332.2125,90.6 C329.679154,97.2667 328.4125,104.466628 328.4125,112.2 C328.4125,120.20004 329.645821,127.5333 332.1125,134.2 C334.579179,140.8667 338.079144,146.599976 342.6125,151.4 C347.145856,156.200024 352.679134,159.899987 359.2125,162.5 C365.745866,165.100013 373.079126,166.4 381.2125,166.4 C392.945892,166.4 402.945792,163.73336 411.2125,158.4 C419.479208,153.06664 425.61248,144.200062 429.6125,131.8 L404.6125,131.8 C403.679162,135.000016 401.145854,138.033319 397.0125,140.9 C392.879146,143.766681 387.945862,145.2 382.2125,145.2 C374.21246,145.2 368.079188,143.133354 363.8125,139 C359.545812,134.866646 357.212502,128.200046 356.8125,119 L356.8125,119 Z M514.425,111.8 C514.425,116.066688 514.025004,120.19998 513.225,124.2 C512.424996,128.20002 511.091676,131.766651 509.225,134.9 C507.358324,138.033349 504.858349,140.533324 501.725,142.4 C498.591651,144.266676 494.69169,145.2 490.025,145.2 C485.624978,145.2 481.858349,144.233343 478.725,142.3 C475.591651,140.366657 472.991677,137.833349 470.925,134.7 C468.858323,131.566651 467.358338,128.00002 466.425,124 C465.491662,119.99998 465.025,116.00002 465.025,112 C465.025,107.733312 465.458329,103.633353 466.325,99.7 C467.191671,95.766647 468.591657,92.266682 470.525,89.2 C472.458343,86.133318 475.024984,83.666676 478.225,81.8 C481.425016,79.933324 485.35831,79 490.025,79 C494.69169,79 498.558318,79.933324 501.625,81.8 C504.691682,83.666676 507.191657,86.099985 509.125,89.1 C511.058343,92.100015 512.424996,95.566647 513.225,99.5 C514.025004,103.433353 514.425,107.533312 514.425,111.8 L514.425,111.8 Z M514.825,150.6 L514.825,163.8 L541.825,163.8 L541.825,21 L513.425,21 L513.425,73 L513.025,73 C509.824984,67.933308 505.458361,64.100013 499.925,61.5 C494.391639,58.899987 488.558364,57.6 482.425,57.6 C474.824962,57.6 468.158362,59.099985 462.425,62.1 C456.691638,65.100015 451.925019,69.066642 448.125,74 C444.324981,78.933358 441.458343,84.633301 439.525,91.1 C437.591657,97.566699 436.625,104.266632 436.625,111.2 C436.625,118.400036 437.591657,125.3333 439.525,132 C441.458343,138.6667 444.324981,144.566641 448.125,149.7 C451.925019,154.833359 456.758304,158.899985 462.625,161.9 C468.491696,164.900015 475.291628,166.4 483.025,166.4 C489.825034,166.4 495.924973,165.166679 501.325,162.7 C506.725027,160.233321 511.09165,156.200028 514.425,150.6 L514.825,150.6 Z M625.6375,101 L579.4375,101 C579.570834,98.99999 580.004163,96.733346 580.7375,94.2 C581.470837,91.666654 582.737491,89.266678 584.5375,87 C586.337509,84.733322 588.737485,82.833341 591.7375,81.3 C594.737515,79.766659 598.504144,79 603.0375,79 C609.970868,79 615.137483,80.866648 618.5375,84.6 C621.937517,88.333352 624.30416,93.799964 625.6375,101 L625.6375,101 Z M579.4375,119 L654.0375,119 C654.570836,110.99996 653.904176,103.33337 652.0375,96 C650.170824,88.66663 647.137521,82.133362 642.9375,76.4 C638.737479,70.666638 633.370866,66.100017 626.8375,62.7 C620.304134,59.299983 612.637544,57.6 603.8375,57.6 C595.970794,57.6 588.804199,58.999986 582.3375,61.8 C575.870801,64.600014 570.30419,68.433309 565.6375,73.3 C560.97081,78.166691 557.370846,83.9333 554.8375,90.6 C552.304154,97.2667 551.0375,104.466628 551.0375,112.2 C551.0375,120.20004 552.270821,127.5333 554.7375,134.2 C557.204179,140.8667 560.704144,146.599976 565.2375,151.4 C569.770856,156.200024 575.304134,159.899987 581.8375,162.5 C588.370866,165.100013 595.704126,166.4 603.8375,166.4 C615.570892,166.4 625.570792,163.73336 633.8375,158.4 C642.104208,153.06664 648.23748,144.200062 652.2375,131.8 L627.2375,131.8 C626.304162,135.000016 623.770854,138.033319 619.6375,140.9 C615.504146,143.766681 610.570862,145.2 604.8375,145.2 C596.83746,145.2 590.704188,143.133354 586.4375,139 C582.170812,134.866646 579.837502,128.200046 579.4375,119 L579.4375,119 Z M663.65,60.4 L663.65,163.8 L692.05,163.8 L692.05,117.2 C692.05,112.53331 692.516662,108.20002 693.45,104.2 C694.383338,100.19998 695.949989,96.700015 698.15,93.7 C700.350011,90.699985 703.249982,88.333342 706.85,86.6 C710.450018,84.866658 714.849974,84 720.05,84 C721.783342,84 723.583324,84.099999 725.45,84.3 C727.316676,84.500001 728.91666,84.733332 730.25,85 L730.25,58.6 C727.983322,57.93333 725.916676,57.6 724.05,57.6 C720.449982,57.6 716.98335,58.133328 713.65,59.2 C710.31665,60.266672 707.183348,61.766657 704.25,63.7 C701.316652,65.633343 698.716678,67.966653 696.45,70.7 C694.183322,73.433347 692.38334,76.399984 691.05,79.6 L690.65,79.6 L690.65,60.4 L663.65,60.4 Z M733.0625,92.2 C733.462502,85.5333 735.129152,80.000022 738.0625,75.6 C740.995848,71.199978 744.729144,67.66668 749.2625,65 C753.795856,62.33332 758.895805,60.433339 764.5625,59.3 C770.229195,58.166661 775.929138,57.6 781.6625,57.6 C786.862526,57.6 792.12914,57.966663 797.4625,58.7 C802.79586,59.433337 807.662478,60.866656 812.0625,63 C816.462522,65.133344 820.062486,68.099981 822.8625,71.9 C825.662514,75.700019 827.0625,80.733302 827.0625,87 L827.0625,140.8 C827.0625,145.46669 827.329164,149.933312 827.8625,154.2 C828.395836,158.466688 829.32916,161.666656 830.6625,163.8 L801.8625,163.8 C801.329164,162.199992 800.895835,160.566675 800.5625,158.9 C800.229165,157.233325 799.995834,155.533342 799.8625,153.8 C795.329144,158.46669 789.995864,161.733324 783.8625,163.6 C777.729136,165.466676 771.462532,166.4 765.0625,166.4 C760.129142,166.4 755.529188,165.800006 751.2625,164.6 C746.995812,163.399994 743.262516,161.533346 740.0625,159 C736.862484,156.466654 734.362509,153.266686 732.5625,149.4 C730.762491,145.533314 729.8625,140.93336 729.8625,135.6 C729.8625,129.733304 730.895823,124.900019 732.9625,121.1 C735.029177,117.299981 737.695817,114.266678 740.9625,112 C744.229183,109.733322 747.962479,108.033339 752.1625,106.9 C756.362521,105.766661 760.595812,104.86667 764.8625,104.2 C769.129188,103.53333 773.329146,103.000002 777.4625,102.6 C781.595854,102.199998 785.262484,101.600004 788.4625,100.8 C791.662516,99.999996 794.195824,98.833341 796.0625,97.3 C797.929176,95.766659 798.795834,93.533348 798.6625,90.6 C798.6625,87.533318 798.162505,85.100009 797.1625,83.3 C796.162495,81.499991 794.829175,80.100005 793.1625,79.1 C791.495825,78.099995 789.562511,77.433335 787.3625,77.1 C785.162489,76.766665 782.795846,76.6 780.2625,76.6 C774.662472,76.6 770.262516,77.799988 767.0625,80.2 C763.862484,82.600012 761.995836,86.599972 761.4625,92.2 L733.0625,92.2 Z M798.6625,113.2 C797.462494,114.266672 795.962509,115.099997 794.1625,115.7 C792.362491,116.300003 790.429177,116.799998 788.3625,117.2 C786.295823,117.600002 784.129178,117.933332 781.8625,118.2 C779.595822,118.466668 777.329178,118.799998 775.0625,119.2 C772.929156,119.600002 770.829177,120.13333 768.7625,120.8 C766.695823,121.46667 764.895841,122.366661 763.3625,123.5 C761.829159,124.633339 760.595838,126.066658 759.6625,127.8 C758.729162,129.533342 758.2625,131.73332 758.2625,134.4 C758.2625,136.933346 758.729162,139.066658 759.6625,140.8 C760.595838,142.533342 761.862492,143.899995 763.4625,144.9 C765.062508,145.900005 766.929156,146.599998 769.0625,147 C771.195844,147.400002 773.395822,147.6 775.6625,147.6 C781.262528,147.6 785.595818,146.666676 788.6625,144.8 C791.729182,142.933324 793.995826,140.700013 795.4625,138.1 C796.929174,135.499987 797.829165,132.86668 798.1625,130.2 C798.495835,127.53332 798.6625,125.400008 798.6625,123.8 L798.6625,113.2 Z M877.875,60.4 L877.875,29.4 L849.475,29.4 L849.475,60.4 L832.275,60.4 L832.275,79.4 L849.475,79.4 L849.475,140.4 C849.475,145.600026 850.341658,149.799984 852.075,153 C853.808342,156.200016 856.174985,158.666658 859.175,160.4 C862.175015,162.133342 865.641647,163.299997 869.575,163.9 C873.508353,164.500003 877.674978,164.8 882.075,164.8 C884.875014,164.8 887.741652,164.733334 890.675,164.6 C893.608348,164.466666 896.274988,164.200002 898.675,163.8 L898.675,141.8 C897.34166,142.066668 895.941674,142.266666 894.475,142.4 C893.008326,142.533334 891.475008,142.6 889.875,142.6 C885.074976,142.6 881.875008,141.800008 880.275,140.2 C878.674992,138.599992 877.875,135.400024 877.875,130.6 L877.875,79.4 L898.675,79.4 L898.675,60.4 L877.875,60.4 Z M934.2875,44.4 L934.2875,21 L905.8875,21 L905.8875,44.4 L934.2875,44.4 Z M905.8875,60.4 L905.8875,163.8 L934.2875,163.8 L934.2875,60.4 L905.8875,60.4 Z M948.3,92.2 C948.700002,85.5333 950.366652,80.000022 953.3,75.6 C956.233348,71.199978 959.966644,67.66668 964.5,65 C969.033356,62.33332 974.133305,60.433339 979.8,59.3 C985.466695,58.166661 991.166638,57.6 996.9,57.6 C1002.10003,57.6 1007.36664,57.966663 1012.7,58.7 C1018.03336,59.433337 1022.89998,60.866656 1027.3,63 C1031.70002,65.133344 1035.29999,68.099981 1038.1,71.9 C1040.90001,75.700019 1042.3,80.733302 1042.3,87 L1042.3,140.8 C1042.3,145.46669 1042.56666,149.933312 1043.1,154.2 C1043.63334,158.466688 1044.56666,161.666656 1045.9,163.8 L1017.1,163.8 C1016.56666,162.199992 1016.13333,160.566675 1015.8,158.9 C1015.46667,157.233325 1015.23333,155.533342 1015.1,153.8 C1010.56664,158.46669 1005.23336,161.733324 999.1,163.6 C992.966636,165.466676 986.700032,166.4 980.3,166.4 C975.366642,166.4 970.766688,165.800006 966.5,164.6 C962.233312,163.399994 958.500016,161.533346 955.3,159 C952.099984,156.466654 949.600009,153.266686 947.8,149.4 C945.999991,145.533314 945.1,140.93336 945.1,135.6 C945.1,129.733304 946.133323,124.900019 948.2,121.1 C950.266677,117.299981 952.933317,114.266678 956.2,112 C959.466683,109.733322 963.199979,108.033339 967.4,106.9 C971.600021,105.766661 975.833312,104.86667 980.1,104.2 C984.366688,103.53333 988.566646,103.000002 992.7,102.6 C996.833354,102.199998 1000.49998,101.600004 1003.7,100.8 C1006.90002,99.999996 1009.43332,98.833341 1011.3,97.3 C1013.16668,95.766659 1014.03333,93.533348 1013.9,90.6 C1013.9,87.533318 1013.40001,85.100009 1012.4,83.3 C1011.39999,81.499991 1010.06668,80.100005 1008.4,79.1 C1006.73332,78.099995 1004.80001,77.433335 1002.6,77.1 C1000.39999,76.766665 998.033346,76.6 995.5,76.6 C989.899972,76.6 985.500016,77.799988 982.3,80.2 C979.099984,82.600012 977.233336,86.599972 976.7,92.2 L948.3,92.2 Z M1013.9,113.2 C1012.69999,114.266672 1011.20001,115.099997 1009.4,115.7 C1007.59999,116.300003 1005.66668,116.799998 1003.6,117.2 C1001.53332,117.600002 999.366678,117.933332 997.1,118.2 C994.833322,118.466668 992.566678,118.799998 990.3,119.2 C988.166656,119.600002 986.066677,120.13333 984,120.8 C981.933323,121.46667 980.133341,122.366661 978.6,123.5 C977.066659,124.633339 975.833338,126.066658 974.9,127.8 C973.966662,129.533342 973.5,131.73332 973.5,134.4 C973.5,136.933346 973.966662,139.066658 974.9,140.8 C975.833338,142.533342 977.099992,143.899995 978.7,144.9 C980.300008,145.900005 982.166656,146.599998 984.3,147 C986.433344,147.400002 988.633322,147.6 990.9,147.6 C996.500028,147.6 1000.83332,146.666676 1003.9,144.8 C1006.96668,142.933324 1009.23333,140.700013 1010.7,138.1 C1012.16667,135.499987 1013.06667,132.86668 1013.4,130.2 C1013.73334,127.53332 1013.9,125.400008 1013.9,123.8 L1013.9,113.2 Z M1057.9125,21 L1057.9125,163.8 L1086.3125,163.8 L1086.3125,21 L1057.9125,21 Z" id="Federatial-Copy-12"></path>
</g>
</g>
</svg>
{
"tiddlers": {
"$:/plugins/tiddlywiki/reveal-js/docs": {
"title": "$:/plugins/tiddlywiki/reveal-js/docs",
"text": "TBD\n"
},
"$:/plugins/tiddlywiki/reveal-js/license": {
"title": "$:/plugins/tiddlywiki/reveal-js/license",
"text": "{{$:/plugins/tiddlywiki/reveal-js/files/LICENSE}}"
},
"$:/plugins/tiddlywiki/reveal-js/readme": {
"title": "$:/plugins/tiddlywiki/reveal-js/readme",
"text": "This plugin contains a Reveal.js theme for static export from TiddlyWiki.\n"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/print/paper.css": {
"text": "/* Default Print Stylesheet Template\n by Rob Glazebrook of CSSnewbie.com\n Last Updated: June 4, 2008\n\n Feel free (nay, compelled) to edit, append, and\n manipulate this file as you see fit. */\n\n\n@media print {\n\n\t/* SECTION 1: Set default width, margin, float, and\n\t background. This prevents elements from extending\n\t beyond the edge of the printed page, and prevents\n\t unnecessary background images from printing */\n\thtml {\n\t\tbackground: #fff;\n\t\twidth: auto;\n\t\theight: auto;\n\t\toverflow: visible;\n\t}\n\tbody {\n\t\tbackground: #fff;\n\t\tfont-size: 20pt;\n\t\twidth: auto;\n\t\theight: auto;\n\t\tborder: 0;\n\t\tmargin: 0 5%;\n\t\tpadding: 0;\n\t\toverflow: visible;\n\t\tfloat: none !important;\n\t}\n\n\t/* SECTION 2: Remove any elements not needed in print.\n\t This would include navigation, ads, sidebars, etc. */\n\t.nestedarrow,\n\t.controls,\n\t.fork-reveal,\n\t.share-reveal,\n\t.state-background,\n\t.reveal .progress,\n\t.reveal .backgrounds,\n\t.reveal .slide-number {\n\t\tdisplay: none !important;\n\t}\n\n\t/* SECTION 3: Set body font face, size, and color.\n\t Consider using a serif font for readability. */\n\tbody, p, td, li, div {\n\t\tfont-size: 20pt!important;\n\t\tfont-family: Georgia, \"Times New Roman\", Times, serif !important;\n\t\tcolor: #000;\n\t}\n\n\t/* SECTION 4: Set heading font face, sizes, and color.\n\t Differentiate your headings from your body text.\n\t Perhaps use a large sans-serif for distinction. */\n\th1,h2,h3,h4,h5,h6 {\n\t\tcolor: #000!important;\n\t\theight: auto;\n\t\tline-height: normal;\n\t\tfont-family: Georgia, \"Times New Roman\", Times, serif !important;\n\t\ttext-shadow: 0 0 0 #000 !important;\n\t\ttext-align: left;\n\t\tletter-spacing: normal;\n\t}\n\t/* Need to reduce the size of the fonts for printing */\n\th1 { font-size: 28pt !important; }\n\th2 { font-size: 24pt !important; }\n\th3 { font-size: 22pt !important; }\n\th4 { font-size: 22pt !important; font-variant: small-caps; }\n\th5 { font-size: 21pt !important; }\n\th6 { font-size: 20pt !important; font-style: italic; }\n\n\t/* SECTION 5: Make hyperlinks more usable.\n\t Ensure links are underlined, and consider appending\n\t the URL to the end of the link for usability. */\n\ta:link,\n\ta:visited {\n\t\tcolor: #000 !important;\n\t\tfont-weight: bold;\n\t\ttext-decoration: underline;\n\t}\n\t/*\n\t.reveal a:link:after,\n\t.reveal a:visited:after {\n\t\tcontent: \" (\" attr(href) \") \";\n\t\tcolor: #222 !important;\n\t\tfont-size: 90%;\n\t}\n\t*/\n\n\n\t/* SECTION 6: more reveal.js specific additions by @skypanther */\n\tul, ol, div, p {\n\t\tvisibility: visible;\n\t\tposition: static;\n\t\twidth: auto;\n\t\theight: auto;\n\t\tdisplay: block;\n\t\toverflow: visible;\n\t\tmargin: 0;\n\t\ttext-align: left !important;\n\t}\n\t.reveal pre,\n\t.reveal table {\n\t\tmargin-left: 0;\n\t\tmargin-right: 0;\n\t}\n\t.reveal pre code {\n\t\tpadding: 20px;\n\t\tborder: 1px solid #ddd;\n\t}\n\t.reveal blockquote {\n\t\tmargin: 20px 0;\n\t}\n\t.reveal .slides {\n\t\tposition: static !important;\n\t\twidth: auto !important;\n\t\theight: auto !important;\n\n\t\tleft: 0 !important;\n\t\ttop: 0 !important;\n\t\tmargin-left: 0 !important;\n\t\tmargin-top: 0 !important;\n\t\tpadding: 0 !important;\n\t\tzoom: 1 !important;\n\n\t\toverflow: visible !important;\n\t\tdisplay: block !important;\n\n\t\ttext-align: left !important;\n\t\t-webkit-perspective: none;\n\t\t -moz-perspective: none;\n\t\t -ms-perspective: none;\n\t\t perspective: none;\n\n\t\t-webkit-perspective-origin: 50% 50%;\n\t\t -moz-perspective-origin: 50% 50%;\n\t\t -ms-perspective-origin: 50% 50%;\n\t\t perspective-origin: 50% 50%;\n\t}\n\t.reveal .slides section {\n\t\tvisibility: visible !important;\n\t\tposition: static !important;\n\t\twidth: auto !important;\n\t\theight: auto !important;\n\t\tdisplay: block !important;\n\t\toverflow: visible !important;\n\n\t\tleft: 0 !important;\n\t\ttop: 0 !important;\n\t\tmargin-left: 0 !important;\n\t\tmargin-top: 0 !important;\n\t\tpadding: 60px 20px !important;\n\t\tz-index: auto !important;\n\n\t\topacity: 1 !important;\n\n\t\tpage-break-after: always !important;\n\n\t\t-webkit-transform-style: flat !important;\n\t\t -moz-transform-style: flat !important;\n\t\t -ms-transform-style: flat !important;\n\t\t transform-style: flat !important;\n\n\t\t-webkit-transform: none !important;\n\t\t -moz-transform: none !important;\n\t\t -ms-transform: none !important;\n\t\t transform: none !important;\n\n\t\t-webkit-transition: none !important;\n\t\t -moz-transition: none !important;\n\t\t -ms-transition: none !important;\n\t\t transition: none !important;\n\t}\n\t.reveal .slides section.stack {\n\t\tpadding: 0 !important;\n\t}\n\t.reveal section:last-of-type {\n\t\tpage-break-after: avoid !important;\n\t}\n\t.reveal section .fragment {\n\t\topacity: 1 !important;\n\t\tvisibility: visible !important;\n\n\t\t-webkit-transform: none !important;\n\t\t -moz-transform: none !important;\n\t\t -ms-transform: none !important;\n\t\t transform: none !important;\n\t}\n\t.reveal section img {\n\t\tdisplay: block;\n\t\tmargin: 15px 0px;\n\t\tbackground: rgba(255,255,255,1);\n\t\tborder: 1px solid #666;\n\t\tbox-shadow: none;\n\t}\n\n\t.reveal section small {\n\t\tfont-size: 0.8em;\n\t}\n\n}\n",
"slug": "reveal-js/css/print/paper.css",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/print/paper.css",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/print/pdf.css": {
"text": "/**\n * This stylesheet is used to print reveal.js\n * presentations to PDF.\n *\n * https://github.com/hakimel/reveal.js#pdf-export\n */\n\n* {\n\t-webkit-print-color-adjust: exact;\n}\n\nbody {\n\tmargin: 0 auto !important;\n\tborder: 0;\n\tpadding: 0;\n\tfloat: none !important;\n\toverflow: visible;\n}\n\nhtml {\n\twidth: 100%;\n\theight: 100%;\n\toverflow: visible;\n}\n\n/* Remove any elements not needed in print. */\n.nestedarrow,\n.reveal .controls,\n.reveal .progress,\n.reveal .playback,\n.reveal.overview,\n.fork-reveal,\n.share-reveal,\n.state-background {\n\tdisplay: none !important;\n}\n\nh1, h2, h3, h4, h5, h6 {\n\ttext-shadow: 0 0 0 #000 !important;\n}\n\n.reveal pre code {\n\toverflow: hidden !important;\n\tfont-family: Courier, 'Courier New', monospace !important;\n}\n\nul, ol, div, p {\n\tvisibility: visible;\n\tposition: static;\n\twidth: auto;\n\theight: auto;\n\tdisplay: block;\n\toverflow: visible;\n\tmargin: auto;\n}\n.reveal {\n\twidth: auto !important;\n\theight: auto !important;\n\toverflow: hidden !important;\n}\n.reveal .slides {\n\tposition: static;\n\twidth: 100% !important;\n\theight: auto !important;\n\tzoom: 1 !important;\n\n\tleft: auto;\n\ttop: auto;\n\tmargin: 0 !important;\n\tpadding: 0 !important;\n\n\toverflow: visible;\n\tdisplay: block;\n\n\t-webkit-perspective: none;\n\t -moz-perspective: none;\n\t -ms-perspective: none;\n\t perspective: none;\n\n\t-webkit-perspective-origin: 50% 50%; /* there isn't a none/auto value but 50-50 is the default */\n\t -moz-perspective-origin: 50% 50%;\n\t -ms-perspective-origin: 50% 50%;\n\t perspective-origin: 50% 50%;\n}\n\n.reveal .slides .pdf-page {\n\tposition: relative;\n\toverflow: hidden;\n\tz-index: 1;\n\n\tpage-break-after: always;\n}\n\n.reveal .slides section {\n\tvisibility: visible !important;\n\tdisplay: block !important;\n\tposition: absolute !important;\n\n\tmargin: 0 !important;\n\tpadding: 0 !important;\n\tbox-sizing: border-box !important;\n\tmin-height: 1px;\n\n\topacity: 1 !important;\n\n\t-webkit-transform-style: flat !important;\n\t -moz-transform-style: flat !important;\n\t -ms-transform-style: flat !important;\n\t transform-style: flat !important;\n\n\t-webkit-transform: none !important;\n\t -moz-transform: none !important;\n\t -ms-transform: none !important;\n\t transform: none !important;\n}\n\n.reveal section.stack {\n\tposition: relative !important;\n\tmargin: 0 !important;\n\tpadding: 0 !important;\n\tpage-break-after: avoid !important;\n\theight: auto !important;\n\tmin-height: auto !important;\n}\n\n.reveal img {\n\tbox-shadow: none;\n}\n\n.reveal .roll {\n\toverflow: visible;\n\tline-height: 1em;\n}\n\n/* Slide backgrounds are placed inside of their slide when exporting to PDF */\n.reveal .slide-background {\n\tdisplay: block !important;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n\tz-index: auto !important;\n}\n\n/* Display slide speaker notes when 'showNotes' is enabled */\n.reveal .speaker-notes-pdf {\n\tdisplay: block;\n\twidth: 100%;\n\tmax-height: none;\n\ttop: auto;\n\tright: auto;\n\tbottom: auto;\n\tleft: auto;\n\tz-index: 100;\n}\n\n/* Layout option which makes notes appear on a separate page */\n.reveal .speaker-notes-pdf[data-layout=\"separate-page\"] {\n\tposition: relative;\n\tcolor: inherit;\n\tbackground-color: transparent;\n\tpadding: 20px;\n\tpage-break-after: always;\n}\n\n/* Display slide numbers when 'slideNumber' is enabled */\n.reveal .slide-number-pdf {\n\tdisplay: block;\n\tposition: absolute;\n\tfont-size: 14px;\n}\n",
"slug": "reveal-js/css/print/pdf.css",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/print/pdf.css",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/reveal.css": {
"text": "/*!\n * reveal.js\n * http://lab.hakim.se/reveal-js\n * MIT licensed\n *\n * Copyright (C) 2017 Hakim El Hattab, http://hakim.se\n */\n/*********************************************\n * RESET STYLES\n *********************************************/\nhtml, body, .reveal div, .reveal span, .reveal applet, .reveal object, .reveal iframe,\n.reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6, .reveal p, .reveal blockquote, .reveal pre,\n.reveal a, .reveal abbr, .reveal acronym, .reveal address, .reveal big, .reveal cite, .reveal code,\n.reveal del, .reveal dfn, .reveal em, .reveal img, .reveal ins, .reveal kbd, .reveal q, .reveal s, .reveal samp,\n.reveal small, .reveal strike, .reveal strong, .reveal sub, .reveal sup, .reveal tt, .reveal var,\n.reveal b, .reveal u, .reveal center,\n.reveal dl, .reveal dt, .reveal dd, .reveal ol, .reveal ul, .reveal li,\n.reveal fieldset, .reveal form, .reveal label, .reveal legend,\n.reveal table, .reveal caption, .reveal tbody, .reveal tfoot, .reveal thead, .reveal tr, .reveal th, .reveal td,\n.reveal article, .reveal aside, .reveal canvas, .reveal details, .reveal embed,\n.reveal figure, .reveal figcaption, .reveal footer, .reveal header, .reveal hgroup,\n.reveal menu, .reveal nav, .reveal output, .reveal ruby, .reveal section, .reveal summary,\n.reveal time, .reveal mark, .reveal audio, .reveal video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline; }\n\n.reveal article, .reveal aside, .reveal details, .reveal figcaption, .reveal figure,\n.reveal footer, .reveal header, .reveal hgroup, .reveal menu, .reveal nav, .reveal section {\n display: block; }\n\n/*********************************************\n * GLOBAL STYLES\n *********************************************/\nhtml,\nbody {\n width: 100%;\n height: 100%;\n overflow: hidden; }\n\nbody {\n position: relative;\n line-height: 1;\n background-color: #fff;\n color: #000; }\n\n/*********************************************\n * VIEW FRAGMENTS\n *********************************************/\n.reveal .slides section .fragment {\n opacity: 0;\n visibility: hidden;\n -webkit-transition: all .2s ease;\n transition: all .2s ease; }\n .reveal .slides section .fragment.visible {\n opacity: 1;\n visibility: inherit; }\n\n.reveal .slides section .fragment.grow {\n opacity: 1;\n visibility: inherit; }\n .reveal .slides section .fragment.grow.visible {\n -webkit-transform: scale(1.3);\n transform: scale(1.3); }\n\n.reveal .slides section .fragment.shrink {\n opacity: 1;\n visibility: inherit; }\n .reveal .slides section .fragment.shrink.visible {\n -webkit-transform: scale(0.7);\n transform: scale(0.7); }\n\n.reveal .slides section .fragment.zoom-in {\n -webkit-transform: scale(0.1);\n transform: scale(0.1); }\n .reveal .slides section .fragment.zoom-in.visible {\n -webkit-transform: none;\n transform: none; }\n\n.reveal .slides section .fragment.fade-out {\n opacity: 1;\n visibility: inherit; }\n .reveal .slides section .fragment.fade-out.visible {\n opacity: 0;\n visibility: hidden; }\n\n.reveal .slides section .fragment.semi-fade-out {\n opacity: 1;\n visibility: inherit; }\n .reveal .slides section .fragment.semi-fade-out.visible {\n opacity: 0.5;\n visibility: inherit; }\n\n.reveal .slides section .fragment.strike {\n opacity: 1;\n visibility: inherit; }\n .reveal .slides section .fragment.strike.visible {\n text-decoration: line-through; }\n\n.reveal .slides section .fragment.fade-up {\n -webkit-transform: translate(0, 20%);\n transform: translate(0, 20%); }\n .reveal .slides section .fragment.fade-up.visible {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0); }\n\n.reveal .slides section .fragment.fade-down {\n -webkit-transform: translate(0, -20%);\n transform: translate(0, -20%); }\n .reveal .slides section .fragment.fade-down.visible {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0); }\n\n.reveal .slides section .fragment.fade-right {\n -webkit-transform: translate(-20%, 0);\n transform: translate(-20%, 0); }\n .reveal .slides section .fragment.fade-right.visible {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0); }\n\n.reveal .slides section .fragment.fade-left {\n -webkit-transform: translate(20%, 0);\n transform: translate(20%, 0); }\n .reveal .slides section .fragment.fade-left.visible {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0); }\n\n.reveal .slides section .fragment.current-visible {\n opacity: 0;\n visibility: hidden; }\n .reveal .slides section .fragment.current-visible.current-fragment {\n opacity: 1;\n visibility: inherit; }\n\n.reveal .slides section .fragment.highlight-red,\n.reveal .slides section .fragment.highlight-current-red,\n.reveal .slides section .fragment.highlight-green,\n.reveal .slides section .fragment.highlight-current-green,\n.reveal .slides section .fragment.highlight-blue,\n.reveal .slides section .fragment.highlight-current-blue {\n opacity: 1;\n visibility: inherit; }\n\n.reveal .slides section .fragment.highlight-red.visible {\n color: #ff2c2d; }\n\n.reveal .slides section .fragment.highlight-green.visible {\n color: #17ff2e; }\n\n.reveal .slides section .fragment.highlight-blue.visible {\n color: #1b91ff; }\n\n.reveal .slides section .fragment.highlight-current-red.current-fragment {\n color: #ff2c2d; }\n\n.reveal .slides section .fragment.highlight-current-green.current-fragment {\n color: #17ff2e; }\n\n.reveal .slides section .fragment.highlight-current-blue.current-fragment {\n color: #1b91ff; }\n\n/*********************************************\n * DEFAULT ELEMENT STYLES\n *********************************************/\n/* Fixes issue in Chrome where italic fonts did not appear when printing to PDF */\n.reveal:after {\n content: '';\n font-style: italic; }\n\n.reveal iframe {\n z-index: 1; }\n\n/** Prevents layering issues in certain browser/transition combinations */\n.reveal a {\n position: relative; }\n\n.reveal .stretch {\n max-width: none;\n max-height: none; }\n\n.reveal pre.stretch code {\n height: 100%;\n max-height: 100%;\n box-sizing: border-box; }\n\n/*********************************************\n * CONTROLS\n *********************************************/\n.reveal .controls {\n display: none;\n position: fixed;\n width: 110px;\n height: 110px;\n z-index: 30;\n right: 10px;\n bottom: 10px;\n -webkit-user-select: none; }\n\n.reveal .controls button {\n padding: 0;\n position: absolute;\n opacity: 0.05;\n width: 0;\n height: 0;\n background-color: transparent;\n border: 12px solid transparent;\n -webkit-transform: scale(0.9999);\n transform: scale(0.9999);\n -webkit-transition: all 0.2s ease;\n transition: all 0.2s ease;\n -webkit-appearance: none;\n -webkit-tap-highlight-color: transparent; }\n\n.reveal .controls .enabled {\n opacity: 0.7;\n cursor: pointer; }\n\n.reveal .controls .enabled:active {\n margin-top: 1px; }\n\n.reveal .controls .navigate-left {\n top: 42px;\n border-right-width: 22px;\n border-right-color: #000; }\n\n.reveal .controls .navigate-left.fragmented {\n opacity: 0.3; }\n\n.reveal .controls .navigate-right {\n left: 74px;\n top: 42px;\n border-left-width: 22px;\n border-left-color: #000; }\n\n.reveal .controls .navigate-right.fragmented {\n opacity: 0.3; }\n\n.reveal .controls .navigate-up {\n left: 42px;\n border-bottom-width: 22px;\n border-bottom-color: #000; }\n\n.reveal .controls .navigate-up.fragmented {\n opacity: 0.3; }\n\n.reveal .controls .navigate-down {\n left: 42px;\n top: 74px;\n border-top-width: 22px;\n border-top-color: #000; }\n\n.reveal .controls .navigate-down.fragmented {\n opacity: 0.3; }\n\n/*********************************************\n * PROGRESS BAR\n *********************************************/\n.reveal .progress {\n position: fixed;\n display: none;\n height: 3px;\n width: 100%;\n bottom: 0;\n left: 0;\n z-index: 10;\n background-color: rgba(0, 0, 0, 0.2); }\n\n.reveal .progress:after {\n content: '';\n display: block;\n position: absolute;\n height: 20px;\n width: 100%;\n top: -20px; }\n\n.reveal .progress span {\n display: block;\n height: 100%;\n width: 0px;\n background-color: #000;\n -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }\n\n/*********************************************\n * SLIDE NUMBER\n *********************************************/\n.reveal .slide-number {\n position: fixed;\n display: block;\n right: 8px;\n bottom: 8px;\n z-index: 31;\n font-family: Helvetica, sans-serif;\n font-size: 12px;\n line-height: 1;\n color: #fff;\n background-color: rgba(0, 0, 0, 0.4);\n padding: 5px; }\n\n.reveal .slide-number-delimiter {\n margin: 0 3px; }\n\n/*********************************************\n * SLIDES\n *********************************************/\n.reveal {\n position: relative;\n width: 100%;\n height: 100%;\n overflow: hidden;\n -ms-touch-action: none;\n touch-action: none; }\n\n.reveal .slides {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n margin: auto;\n pointer-events: none;\n overflow: visible;\n z-index: 1;\n text-align: center;\n -webkit-perspective: 600px;\n perspective: 600px;\n -webkit-perspective-origin: 50% 40%;\n perspective-origin: 50% 40%; }\n\n.reveal .slides > section {\n -ms-perspective: 600px; }\n\n.reveal .slides > section,\n.reveal .slides > section > section {\n display: none;\n position: absolute;\n width: 100%;\n padding: 20px 0px;\n pointer-events: auto;\n z-index: 10;\n -webkit-transform-style: flat;\n transform-style: flat;\n -webkit-transition: -webkit-transform-origin 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985), -webkit-transform 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985), visibility 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985), opacity 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n transition: transform-origin 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985), transform 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985), visibility 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985), opacity 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }\n\n/* Global transition speed settings */\n.reveal[data-transition-speed=\"fast\"] .slides section {\n -webkit-transition-duration: 400ms;\n transition-duration: 400ms; }\n\n.reveal[data-transition-speed=\"slow\"] .slides section {\n -webkit-transition-duration: 1200ms;\n transition-duration: 1200ms; }\n\n/* Slide-specific transition speed overrides */\n.reveal .slides section[data-transition-speed=\"fast\"] {\n -webkit-transition-duration: 400ms;\n transition-duration: 400ms; }\n\n.reveal .slides section[data-transition-speed=\"slow\"] {\n -webkit-transition-duration: 1200ms;\n transition-duration: 1200ms; }\n\n.reveal .slides > section.stack {\n padding-top: 0;\n padding-bottom: 0; }\n\n.reveal .slides > section.present,\n.reveal .slides > section > section.present {\n display: block;\n z-index: 11;\n opacity: 1; }\n\n.reveal .slides > section:empty,\n.reveal .slides > section > section:empty,\n.reveal .slides > section[data-background-interactive],\n.reveal .slides > section > section[data-background-interactive] {\n pointer-events: none; }\n\n.reveal.center,\n.reveal.center .slides,\n.reveal.center .slides section {\n min-height: 0 !important; }\n\n/* Don't allow interaction with invisible slides */\n.reveal .slides > section.future,\n.reveal .slides > section > section.future,\n.reveal .slides > section.past,\n.reveal .slides > section > section.past {\n pointer-events: none; }\n\n.reveal.overview .slides > section,\n.reveal.overview .slides > section > section {\n pointer-events: auto; }\n\n.reveal .slides > section.past,\n.reveal .slides > section.future,\n.reveal .slides > section > section.past,\n.reveal .slides > section > section.future {\n opacity: 0; }\n\n/*********************************************\n * Mixins for readability of transitions\n *********************************************/\n/*********************************************\n * SLIDE TRANSITION\n * Aliased 'linear' for backwards compatibility\n *********************************************/\n.reveal.slide section {\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden; }\n\n.reveal .slides > section[data-transition=slide].past,\n.reveal .slides > section[data-transition~=slide-out].past,\n.reveal.slide .slides > section:not([data-transition]).past {\n -webkit-transform: translate(-150%, 0);\n transform: translate(-150%, 0); }\n\n.reveal .slides > section[data-transition=slide].future,\n.reveal .slides > section[data-transition~=slide-in].future,\n.reveal.slide .slides > section:not([data-transition]).future {\n -webkit-transform: translate(150%, 0);\n transform: translate(150%, 0); }\n\n.reveal .slides > section > section[data-transition=slide].past,\n.reveal .slides > section > section[data-transition~=slide-out].past,\n.reveal.slide .slides > section > section:not([data-transition]).past {\n -webkit-transform: translate(0, -150%);\n transform: translate(0, -150%); }\n\n.reveal .slides > section > section[data-transition=slide].future,\n.reveal .slides > section > section[data-transition~=slide-in].future,\n.reveal.slide .slides > section > section:not([data-transition]).future {\n -webkit-transform: translate(0, 150%);\n transform: translate(0, 150%); }\n\n.reveal.linear section {\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden; }\n\n.reveal .slides > section[data-transition=linear].past,\n.reveal .slides > section[data-transition~=linear-out].past,\n.reveal.linear .slides > section:not([data-transition]).past {\n -webkit-transform: translate(-150%, 0);\n transform: translate(-150%, 0); }\n\n.reveal .slides > section[data-transition=linear].future,\n.reveal .slides > section[data-transition~=linear-in].future,\n.reveal.linear .slides > section:not([data-transition]).future {\n -webkit-transform: translate(150%, 0);\n transform: translate(150%, 0); }\n\n.reveal .slides > section > section[data-transition=linear].past,\n.reveal .slides > section > section[data-transition~=linear-out].past,\n.reveal.linear .slides > section > section:not([data-transition]).past {\n -webkit-transform: translate(0, -150%);\n transform: translate(0, -150%); }\n\n.reveal .slides > section > section[data-transition=linear].future,\n.reveal .slides > section > section[data-transition~=linear-in].future,\n.reveal.linear .slides > section > section:not([data-transition]).future {\n -webkit-transform: translate(0, 150%);\n transform: translate(0, 150%); }\n\n/*********************************************\n * CONVEX TRANSITION\n * Aliased 'default' for backwards compatibility\n *********************************************/\n.reveal .slides section[data-transition=default].stack,\n.reveal.default .slides section.stack {\n -webkit-transform-style: preserve-3d;\n transform-style: preserve-3d; }\n\n.reveal .slides > section[data-transition=default].past,\n.reveal .slides > section[data-transition~=default-out].past,\n.reveal.default .slides > section:not([data-transition]).past {\n -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0); }\n\n.reveal .slides > section[data-transition=default].future,\n.reveal .slides > section[data-transition~=default-in].future,\n.reveal.default .slides > section:not([data-transition]).future {\n -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0); }\n\n.reveal .slides > section > section[data-transition=default].past,\n.reveal .slides > section > section[data-transition~=default-out].past,\n.reveal.default .slides > section > section:not([data-transition]).past {\n -webkit-transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0);\n transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0); }\n\n.reveal .slides > section > section[data-transition=default].future,\n.reveal .slides > section > section[data-transition~=default-in].future,\n.reveal.default .slides > section > section:not([data-transition]).future {\n -webkit-transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0);\n transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0); }\n\n.reveal .slides section[data-transition=convex].stack,\n.reveal.convex .slides section.stack {\n -webkit-transform-style: preserve-3d;\n transform-style: preserve-3d; }\n\n.reveal .slides > section[data-transition=convex].past,\n.reveal .slides > section[data-transition~=convex-out].past,\n.reveal.convex .slides > section:not([data-transition]).past {\n -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0); }\n\n.reveal .slides > section[data-transition=convex].future,\n.reveal .slides > section[data-transition~=convex-in].future,\n.reveal.convex .slides > section:not([data-transition]).future {\n -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0); }\n\n.reveal .slides > section > section[data-transition=convex].past,\n.reveal .slides > section > section[data-transition~=convex-out].past,\n.reveal.convex .slides > section > section:not([data-transition]).past {\n -webkit-transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0);\n transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0); }\n\n.reveal .slides > section > section[data-transition=convex].future,\n.reveal .slides > section > section[data-transition~=convex-in].future,\n.reveal.convex .slides > section > section:not([data-transition]).future {\n -webkit-transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0);\n transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0); }\n\n/*********************************************\n * CONCAVE TRANSITION\n *********************************************/\n.reveal .slides section[data-transition=concave].stack,\n.reveal.concave .slides section.stack {\n -webkit-transform-style: preserve-3d;\n transform-style: preserve-3d; }\n\n.reveal .slides > section[data-transition=concave].past,\n.reveal .slides > section[data-transition~=concave-out].past,\n.reveal.concave .slides > section:not([data-transition]).past {\n -webkit-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0); }\n\n.reveal .slides > section[data-transition=concave].future,\n.reveal .slides > section[data-transition~=concave-in].future,\n.reveal.concave .slides > section:not([data-transition]).future {\n -webkit-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0); }\n\n.reveal .slides > section > section[data-transition=concave].past,\n.reveal .slides > section > section[data-transition~=concave-out].past,\n.reveal.concave .slides > section > section:not([data-transition]).past {\n -webkit-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);\n transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0); }\n\n.reveal .slides > section > section[data-transition=concave].future,\n.reveal .slides > section > section[data-transition~=concave-in].future,\n.reveal.concave .slides > section > section:not([data-transition]).future {\n -webkit-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);\n transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0); }\n\n/*********************************************\n * ZOOM TRANSITION\n *********************************************/\n.reveal .slides section[data-transition=zoom],\n.reveal.zoom .slides section:not([data-transition]) {\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease; }\n\n.reveal .slides > section[data-transition=zoom].past,\n.reveal .slides > section[data-transition~=zoom-out].past,\n.reveal.zoom .slides > section:not([data-transition]).past {\n visibility: hidden;\n -webkit-transform: scale(16);\n transform: scale(16); }\n\n.reveal .slides > section[data-transition=zoom].future,\n.reveal .slides > section[data-transition~=zoom-in].future,\n.reveal.zoom .slides > section:not([data-transition]).future {\n visibility: hidden;\n -webkit-transform: scale(0.2);\n transform: scale(0.2); }\n\n.reveal .slides > section > section[data-transition=zoom].past,\n.reveal .slides > section > section[data-transition~=zoom-out].past,\n.reveal.zoom .slides > section > section:not([data-transition]).past {\n -webkit-transform: translate(0, -150%);\n transform: translate(0, -150%); }\n\n.reveal .slides > section > section[data-transition=zoom].future,\n.reveal .slides > section > section[data-transition~=zoom-in].future,\n.reveal.zoom .slides > section > section:not([data-transition]).future {\n -webkit-transform: translate(0, 150%);\n transform: translate(0, 150%); }\n\n/*********************************************\n * CUBE TRANSITION\n *\n * WARNING:\n * this is deprecated and will be removed in a\n * future version.\n *********************************************/\n.reveal.cube .slides {\n -webkit-perspective: 1300px;\n perspective: 1300px; }\n\n.reveal.cube .slides section {\n padding: 30px;\n min-height: 700px;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n box-sizing: border-box;\n -webkit-transform-style: preserve-3d;\n transform-style: preserve-3d; }\n\n.reveal.center.cube .slides section {\n min-height: 0; }\n\n.reveal.cube .slides section:not(.stack):before {\n content: '';\n position: absolute;\n display: block;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n background: rgba(0, 0, 0, 0.1);\n border-radius: 4px;\n -webkit-transform: translateZ(-20px);\n transform: translateZ(-20px); }\n\n.reveal.cube .slides section:not(.stack):after {\n content: '';\n position: absolute;\n display: block;\n width: 90%;\n height: 30px;\n left: 5%;\n bottom: 0;\n background: none;\n z-index: 1;\n border-radius: 4px;\n box-shadow: 0px 95px 25px rgba(0, 0, 0, 0.2);\n -webkit-transform: translateZ(-90px) rotateX(65deg);\n transform: translateZ(-90px) rotateX(65deg); }\n\n.reveal.cube .slides > section.stack {\n padding: 0;\n background: none; }\n\n.reveal.cube .slides > section.past {\n -webkit-transform-origin: 100% 0%;\n transform-origin: 100% 0%;\n -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg);\n transform: translate3d(-100%, 0, 0) rotateY(-90deg); }\n\n.reveal.cube .slides > section.future {\n -webkit-transform-origin: 0% 0%;\n transform-origin: 0% 0%;\n -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg);\n transform: translate3d(100%, 0, 0) rotateY(90deg); }\n\n.reveal.cube .slides > section > section.past {\n -webkit-transform-origin: 0% 100%;\n transform-origin: 0% 100%;\n -webkit-transform: translate3d(0, -100%, 0) rotateX(90deg);\n transform: translate3d(0, -100%, 0) rotateX(90deg); }\n\n.reveal.cube .slides > section > section.future {\n -webkit-transform-origin: 0% 0%;\n transform-origin: 0% 0%;\n -webkit-transform: translate3d(0, 100%, 0) rotateX(-90deg);\n transform: translate3d(0, 100%, 0) rotateX(-90deg); }\n\n/*********************************************\n * PAGE TRANSITION\n *\n * WARNING:\n * this is deprecated and will be removed in a\n * future version.\n *********************************************/\n.reveal.page .slides {\n -webkit-perspective-origin: 0% 50%;\n perspective-origin: 0% 50%;\n -webkit-perspective: 3000px;\n perspective: 3000px; }\n\n.reveal.page .slides section {\n padding: 30px;\n min-height: 700px;\n box-sizing: border-box;\n -webkit-transform-style: preserve-3d;\n transform-style: preserve-3d; }\n\n.reveal.page .slides section.past {\n z-index: 12; }\n\n.reveal.page .slides section:not(.stack):before {\n content: '';\n position: absolute;\n display: block;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n background: rgba(0, 0, 0, 0.1);\n -webkit-transform: translateZ(-20px);\n transform: translateZ(-20px); }\n\n.reveal.page .slides section:not(.stack):after {\n content: '';\n position: absolute;\n display: block;\n width: 90%;\n height: 30px;\n left: 5%;\n bottom: 0;\n background: none;\n z-index: 1;\n border-radius: 4px;\n box-shadow: 0px 95px 25px rgba(0, 0, 0, 0.2);\n -webkit-transform: translateZ(-90px) rotateX(65deg); }\n\n.reveal.page .slides > section.stack {\n padding: 0;\n background: none; }\n\n.reveal.page .slides > section.past {\n -webkit-transform-origin: 0% 0%;\n transform-origin: 0% 0%;\n -webkit-transform: translate3d(-40%, 0, 0) rotateY(-80deg);\n transform: translate3d(-40%, 0, 0) rotateY(-80deg); }\n\n.reveal.page .slides > section.future {\n -webkit-transform-origin: 100% 0%;\n transform-origin: 100% 0%;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0); }\n\n.reveal.page .slides > section > section.past {\n -webkit-transform-origin: 0% 0%;\n transform-origin: 0% 0%;\n -webkit-transform: translate3d(0, -40%, 0) rotateX(80deg);\n transform: translate3d(0, -40%, 0) rotateX(80deg); }\n\n.reveal.page .slides > section > section.future {\n -webkit-transform-origin: 0% 100%;\n transform-origin: 0% 100%;\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0); }\n\n/*********************************************\n * FADE TRANSITION\n *********************************************/\n.reveal .slides section[data-transition=fade],\n.reveal.fade .slides section:not([data-transition]),\n.reveal.fade .slides > section > section:not([data-transition]) {\n -webkit-transform: none;\n transform: none;\n -webkit-transition: opacity 0.5s;\n transition: opacity 0.5s; }\n\n.reveal.fade.overview .slides section,\n.reveal.fade.overview .slides > section > section {\n -webkit-transition: none;\n transition: none; }\n\n/*********************************************\n * NO TRANSITION\n *********************************************/\n.reveal .slides section[data-transition=none],\n.reveal.none .slides section:not([data-transition]) {\n -webkit-transform: none;\n transform: none;\n -webkit-transition: none;\n transition: none; }\n\n/*********************************************\n * PAUSED MODE\n *********************************************/\n.reveal .pause-overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: black;\n visibility: hidden;\n opacity: 0;\n z-index: 100;\n -webkit-transition: all 1s ease;\n transition: all 1s ease; }\n\n.reveal.paused .pause-overlay {\n visibility: visible;\n opacity: 1; }\n\n/*********************************************\n * FALLBACK\n *********************************************/\n.no-transforms {\n overflow-y: auto; }\n\n.no-transforms .reveal .slides {\n position: relative;\n width: 80%;\n height: auto !important;\n top: 0;\n left: 50%;\n margin: 0;\n text-align: center; }\n\n.no-transforms .reveal .controls,\n.no-transforms .reveal .progress {\n display: none !important; }\n\n.no-transforms .reveal .slides section {\n display: block !important;\n opacity: 1 !important;\n position: relative !important;\n height: auto;\n min-height: 0;\n top: 0;\n left: -50%;\n margin: 70px 0;\n -webkit-transform: none;\n transform: none; }\n\n.no-transforms .reveal .slides section section {\n left: 0; }\n\n.reveal .no-transition,\n.reveal .no-transition * {\n -webkit-transition: none !important;\n transition: none !important; }\n\n/*********************************************\n * PER-SLIDE BACKGROUNDS\n *********************************************/\n.reveal .backgrounds {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n -webkit-perspective: 600px;\n perspective: 600px; }\n\n.reveal .slide-background {\n display: none;\n position: absolute;\n width: 100%;\n height: 100%;\n opacity: 0;\n visibility: hidden;\n overflow: hidden;\n background-color: transparent;\n background-position: 50% 50%;\n background-repeat: no-repeat;\n background-size: cover;\n -webkit-transition: all 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n transition: all 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }\n\n.reveal .slide-background.stack {\n display: block; }\n\n.reveal .slide-background.present {\n opacity: 1;\n visibility: visible;\n z-index: 2; }\n\n.print-pdf .reveal .slide-background {\n opacity: 1 !important;\n visibility: visible !important; }\n\n/* Video backgrounds */\n.reveal .slide-background video {\n position: absolute;\n width: 100%;\n height: 100%;\n max-width: none;\n max-height: none;\n top: 0;\n left: 0;\n -o-object-fit: cover;\n object-fit: cover; }\n\n.reveal .slide-background[data-background-size=\"contain\"] video {\n -o-object-fit: contain;\n object-fit: contain; }\n\n/* Immediate transition style */\n.reveal[data-background-transition=none] > .backgrounds .slide-background,\n.reveal > .backgrounds .slide-background[data-background-transition=none] {\n -webkit-transition: none;\n transition: none; }\n\n/* Slide */\n.reveal[data-background-transition=slide] > .backgrounds .slide-background,\n.reveal > .backgrounds .slide-background[data-background-transition=slide] {\n opacity: 1;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden; }\n\n.reveal[data-background-transition=slide] > .backgrounds .slide-background.past,\n.reveal > .backgrounds .slide-background.past[data-background-transition=slide] {\n -webkit-transform: translate(-100%, 0);\n transform: translate(-100%, 0); }\n\n.reveal[data-background-transition=slide] > .backgrounds .slide-background.future,\n.reveal > .backgrounds .slide-background.future[data-background-transition=slide] {\n -webkit-transform: translate(100%, 0);\n transform: translate(100%, 0); }\n\n.reveal[data-background-transition=slide] > .backgrounds .slide-background > .slide-background.past,\n.reveal > .backgrounds .slide-background > .slide-background.past[data-background-transition=slide] {\n -webkit-transform: translate(0, -100%);\n transform: translate(0, -100%); }\n\n.reveal[data-background-transition=slide] > .backgrounds .slide-background > .slide-background.future,\n.reveal > .backgrounds .slide-background > .slide-background.future[data-background-transition=slide] {\n -webkit-transform: translate(0, 100%);\n transform: translate(0, 100%); }\n\n/* Convex */\n.reveal[data-background-transition=convex] > .backgrounds .slide-background.past,\n.reveal > .backgrounds .slide-background.past[data-background-transition=convex] {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0); }\n\n.reveal[data-background-transition=convex] > .backgrounds .slide-background.future,\n.reveal > .backgrounds .slide-background.future[data-background-transition=convex] {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0); }\n\n.reveal[data-background-transition=convex] > .backgrounds .slide-background > .slide-background.past,\n.reveal > .backgrounds .slide-background > .slide-background.past[data-background-transition=convex] {\n opacity: 0;\n -webkit-transform: translate3d(0, -100%, 0) rotateX(90deg) translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0) rotateX(90deg) translate3d(0, -100%, 0); }\n\n.reveal[data-background-transition=convex] > .backgrounds .slide-background > .slide-background.future,\n.reveal > .backgrounds .slide-background > .slide-background.future[data-background-transition=convex] {\n opacity: 0;\n -webkit-transform: translate3d(0, 100%, 0) rotateX(-90deg) translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0) rotateX(-90deg) translate3d(0, 100%, 0); }\n\n/* Concave */\n.reveal[data-background-transition=concave] > .backgrounds .slide-background.past,\n.reveal > .backgrounds .slide-background.past[data-background-transition=concave] {\n opacity: 0;\n -webkit-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0); }\n\n.reveal[data-background-transition=concave] > .backgrounds .slide-background.future,\n.reveal > .backgrounds .slide-background.future[data-background-transition=concave] {\n opacity: 0;\n -webkit-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0); }\n\n.reveal[data-background-transition=concave] > .backgrounds .slide-background > .slide-background.past,\n.reveal > .backgrounds .slide-background > .slide-background.past[data-background-transition=concave] {\n opacity: 0;\n -webkit-transform: translate3d(0, -100%, 0) rotateX(-90deg) translate3d(0, -100%, 0);\n transform: translate3d(0, -100%, 0) rotateX(-90deg) translate3d(0, -100%, 0); }\n\n.reveal[data-background-transition=concave] > .backgrounds .slide-background > .slide-background.future,\n.reveal > .backgrounds .slide-background > .slide-background.future[data-background-transition=concave] {\n opacity: 0;\n -webkit-transform: translate3d(0, 100%, 0) rotateX(90deg) translate3d(0, 100%, 0);\n transform: translate3d(0, 100%, 0) rotateX(90deg) translate3d(0, 100%, 0); }\n\n/* Zoom */\n.reveal[data-background-transition=zoom] > .backgrounds .slide-background,\n.reveal > .backgrounds .slide-background[data-background-transition=zoom] {\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease; }\n\n.reveal[data-background-transition=zoom] > .backgrounds .slide-background.past,\n.reveal > .backgrounds .slide-background.past[data-background-transition=zoom] {\n opacity: 0;\n visibility: hidden;\n -webkit-transform: scale(16);\n transform: scale(16); }\n\n.reveal[data-background-transition=zoom] > .backgrounds .slide-background.future,\n.reveal > .backgrounds .slide-background.future[data-background-transition=zoom] {\n opacity: 0;\n visibility: hidden;\n -webkit-transform: scale(0.2);\n transform: scale(0.2); }\n\n.reveal[data-background-transition=zoom] > .backgrounds .slide-background > .slide-background.past,\n.reveal > .backgrounds .slide-background > .slide-background.past[data-background-transition=zoom] {\n opacity: 0;\n visibility: hidden;\n -webkit-transform: scale(16);\n transform: scale(16); }\n\n.reveal[data-background-transition=zoom] > .backgrounds .slide-background > .slide-background.future,\n.reveal > .backgrounds .slide-background > .slide-background.future[data-background-transition=zoom] {\n opacity: 0;\n visibility: hidden;\n -webkit-transform: scale(0.2);\n transform: scale(0.2); }\n\n/* Global transition speed settings */\n.reveal[data-transition-speed=\"fast\"] > .backgrounds .slide-background {\n -webkit-transition-duration: 400ms;\n transition-duration: 400ms; }\n\n.reveal[data-transition-speed=\"slow\"] > .backgrounds .slide-background {\n -webkit-transition-duration: 1200ms;\n transition-duration: 1200ms; }\n\n/*********************************************\n * OVERVIEW\n *********************************************/\n.reveal.overview {\n -webkit-perspective-origin: 50% 50%;\n perspective-origin: 50% 50%;\n -webkit-perspective: 700px;\n perspective: 700px; }\n .reveal.overview .slides {\n -moz-transform-style: preserve-3d; }\n .reveal.overview .slides section {\n height: 100%;\n top: 0 !important;\n opacity: 1 !important;\n overflow: hidden;\n visibility: visible !important;\n cursor: pointer;\n box-sizing: border-box; }\n .reveal.overview .slides section:hover,\n .reveal.overview .slides section.present {\n outline: 10px solid rgba(150, 150, 150, 0.4);\n outline-offset: 10px; }\n .reveal.overview .slides section .fragment {\n opacity: 1;\n -webkit-transition: none;\n transition: none; }\n .reveal.overview .slides section:after,\n .reveal.overview .slides section:before {\n display: none !important; }\n .reveal.overview .slides > section.stack {\n padding: 0;\n top: 0 !important;\n background: none;\n outline: none;\n overflow: visible; }\n .reveal.overview .backgrounds {\n -webkit-perspective: inherit;\n perspective: inherit;\n -moz-transform-style: preserve-3d; }\n .reveal.overview .backgrounds .slide-background {\n opacity: 1;\n visibility: visible;\n outline: 10px solid rgba(150, 150, 150, 0.1);\n outline-offset: 10px; }\n .reveal.overview .backgrounds .slide-background.stack {\n overflow: visible; }\n\n.reveal.overview .slides section,\n.reveal.overview-deactivating .slides section {\n -webkit-transition: none;\n transition: none; }\n\n.reveal.overview .backgrounds .slide-background,\n.reveal.overview-deactivating .backgrounds .slide-background {\n -webkit-transition: none;\n transition: none; }\n\n/*********************************************\n * RTL SUPPORT\n *********************************************/\n.reveal.rtl .slides,\n.reveal.rtl .slides h1,\n.reveal.rtl .slides h2,\n.reveal.rtl .slides h3,\n.reveal.rtl .slides h4,\n.reveal.rtl .slides h5,\n.reveal.rtl .slides h6 {\n direction: rtl;\n font-family: sans-serif; }\n\n.reveal.rtl pre,\n.reveal.rtl code {\n direction: ltr; }\n\n.reveal.rtl ol,\n.reveal.rtl ul {\n text-align: right; }\n\n.reveal.rtl .progress span {\n float: right; }\n\n/*********************************************\n * PARALLAX BACKGROUND\n *********************************************/\n.reveal.has-parallax-background .backgrounds {\n -webkit-transition: all 0.8s ease;\n transition: all 0.8s ease; }\n\n/* Global transition speed settings */\n.reveal.has-parallax-background[data-transition-speed=\"fast\"] .backgrounds {\n -webkit-transition-duration: 400ms;\n transition-duration: 400ms; }\n\n.reveal.has-parallax-background[data-transition-speed=\"slow\"] .backgrounds {\n -webkit-transition-duration: 1200ms;\n transition-duration: 1200ms; }\n\n/*********************************************\n * LINK PREVIEW OVERLAY\n *********************************************/\n.reveal .overlay {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 1000;\n background: rgba(0, 0, 0, 0.9);\n opacity: 0;\n visibility: hidden;\n -webkit-transition: all 0.3s ease;\n transition: all 0.3s ease; }\n\n.reveal .overlay.visible {\n opacity: 1;\n visibility: visible; }\n\n.reveal .overlay .spinner {\n position: absolute;\n display: block;\n top: 50%;\n left: 50%;\n width: 32px;\n height: 32px;\n margin: -16px 0 0 -16px;\n z-index: 10;\n background-image: url(data:image/gif;base64,R0lGODlhIAAgAPMAAJmZmf%2F%2F%2F6%2Bvr8nJybW1tcDAwOjo6Nvb26ioqKOjo7Ozs%2FLy8vz8%2FAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ%2FV%2FnmOM82XiHRLYKhKP1oZmADdEAAAh%2BQQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY%2FCZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB%2BA4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6%2BHo7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq%2BB6QDtuetcaBPnW6%2BO7wDHpIiK9SaVK5GgV543tzjgGcghAgAh%2BQQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK%2B%2BG%2Bw48edZPK%2BM6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE%2BG%2BcD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm%2BFNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk%2BaV%2BoJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0%2FVNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc%2BXiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30%2FiI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE%2FjiuL04RGEBgwWhShRgQExHBAAh%2BQQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR%2BipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY%2BYip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd%2BMFCN6HAAIKgNggY0KtEBAAh%2BQQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1%2BvsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d%2BjYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg%2BygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0%2Bbm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h%2BKr0SJ8MFihpNbx%2B4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX%2BBP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA%3D%3D);\n visibility: visible;\n opacity: 0.6;\n -webkit-transition: all 0.3s ease;\n transition: all 0.3s ease; }\n\n.reveal .overlay header {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 40px;\n z-index: 2;\n border-bottom: 1px solid #222; }\n\n.reveal .overlay header a {\n display: inline-block;\n width: 40px;\n height: 40px;\n line-height: 36px;\n padding: 0 10px;\n float: right;\n opacity: 0.6;\n box-sizing: border-box; }\n\n.reveal .overlay header a:hover {\n opacity: 1; }\n\n.reveal .overlay header a .icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background-position: 50% 50%;\n background-size: 100%;\n background-repeat: no-repeat; }\n\n.reveal .overlay header a.close .icon {\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABkklEQVRYR8WX4VHDMAxG6wnoJrABZQPYBCaBTWAD2g1gE5gg6OOsXuxIlr40d81dfrSJ9V4c2VLK7spHuTJ/5wpM07QXuXc5X0opX2tEJcadjHuV80li/FgxTIEK/5QBCICBD6xEhSMGHgQPgBgLiYVAB1dpSqKDawxTohFw4JSEA3clzgIBPCURwE2JucBR7rhPJJv5OpJwDX+SfDjgx1wACQeJG1aChP9K/IMmdZ8DtESV1WyP3Bt4MwM6sj4NMxMYiqUWHQu4KYA/SYkIjOsm3BXYWMKFDwU2khjCQ4ELJUJ4SmClRArOCmSXGuKma0fYD5CbzHxFpCSGAhfAVSSUGDUk2BWZaff2g6GE15BsBQ9nwmpIGDiyHQddwNTMKkbZaf9fajXQca1EX44puJZUsnY0ObGmITE3GVLCbEhQUjGVt146j6oasWN+49Vph2w1pZ5EansNZqKBm1txbU57iRRcZ86RWMDdWtBJUHBHwoQPi1GV+JCbntmvok7iTX4/Up9mgyTc/FJYDTcndgH/AA5A/CHsyEkVAAAAAElFTkSuQmCC); }\n\n.reveal .overlay header a.external .icon {\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAcElEQVRYR+2WSQoAIQwEzf8f7XiOMkUQxUPlGkM3hVmiQfQR9GYnH1SsAQlI4DiBqkCMoNb9y2e90IAEJPAcgdznU9+engMaeJ7Azh5Y1U67gAho4DqBqmB1buAf0MB1AlVBek83ZPkmJMGc1wAR+AAqod/B97TRpQAAAABJRU5ErkJggg==); }\n\n.reveal .overlay .viewport {\n position: absolute;\n display: -webkit-box;\n display: -webkit-flex;\n display: -ms-flexbox;\n display: flex;\n top: 40px;\n right: 0;\n bottom: 0;\n left: 0; }\n\n.reveal .overlay.overlay-preview .viewport iframe {\n width: 100%;\n height: 100%;\n max-width: 100%;\n max-height: 100%;\n border: 0;\n opacity: 0;\n visibility: hidden;\n -webkit-transition: all 0.3s ease;\n transition: all 0.3s ease; }\n\n.reveal .overlay.overlay-preview.loaded .viewport iframe {\n opacity: 1;\n visibility: visible; }\n\n.reveal .overlay.overlay-preview.loaded .viewport-inner {\n position: absolute;\n z-index: -1;\n left: 0;\n top: 45%;\n width: 100%;\n text-align: center;\n letter-spacing: normal; }\n\n.reveal .overlay.overlay-preview .x-frame-error {\n opacity: 0;\n -webkit-transition: opacity 0.3s ease 0.3s;\n transition: opacity 0.3s ease 0.3s; }\n\n.reveal .overlay.overlay-preview.loaded .x-frame-error {\n opacity: 1; }\n\n.reveal .overlay.overlay-preview.loaded .spinner {\n opacity: 0;\n visibility: hidden;\n -webkit-transform: scale(0.2);\n transform: scale(0.2); }\n\n.reveal .overlay.overlay-help .viewport {\n overflow: auto;\n color: #fff; }\n\n.reveal .overlay.overlay-help .viewport .viewport-inner {\n width: 600px;\n margin: auto;\n padding: 20px 20px 80px 20px;\n text-align: center;\n letter-spacing: normal; }\n\n.reveal .overlay.overlay-help .viewport .viewport-inner .title {\n font-size: 20px; }\n\n.reveal .overlay.overlay-help .viewport .viewport-inner table {\n border: 1px solid #fff;\n border-collapse: collapse;\n font-size: 16px; }\n\n.reveal .overlay.overlay-help .viewport .viewport-inner table th,\n.reveal .overlay.overlay-help .viewport .viewport-inner table td {\n width: 200px;\n padding: 14px;\n border: 1px solid #fff;\n vertical-align: middle; }\n\n.reveal .overlay.overlay-help .viewport .viewport-inner table th {\n padding-top: 20px;\n padding-bottom: 20px; }\n\n/*********************************************\n * PLAYBACK COMPONENT\n *********************************************/\n.reveal .playback {\n position: fixed;\n left: 15px;\n bottom: 20px;\n z-index: 30;\n cursor: pointer;\n -webkit-transition: all 400ms ease;\n transition: all 400ms ease; }\n\n.reveal.overview .playback {\n opacity: 0;\n visibility: hidden; }\n\n/*********************************************\n * ROLLING LINKS\n *********************************************/\n.reveal .roll {\n display: inline-block;\n line-height: 1.2;\n overflow: hidden;\n vertical-align: top;\n -webkit-perspective: 400px;\n perspective: 400px;\n -webkit-perspective-origin: 50% 50%;\n perspective-origin: 50% 50%; }\n\n.reveal .roll:hover {\n background: none;\n text-shadow: none; }\n\n.reveal .roll span {\n display: block;\n position: relative;\n padding: 0 2px;\n pointer-events: none;\n -webkit-transition: all 400ms ease;\n transition: all 400ms ease;\n -webkit-transform-origin: 50% 0%;\n transform-origin: 50% 0%;\n -webkit-transform-style: preserve-3d;\n transform-style: preserve-3d;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden; }\n\n.reveal .roll:hover span {\n background: rgba(0, 0, 0, 0.5);\n -webkit-transform: translate3d(0px, 0px, -45px) rotateX(90deg);\n transform: translate3d(0px, 0px, -45px) rotateX(90deg); }\n\n.reveal .roll span:after {\n content: attr(data-title);\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n padding: 0 2px;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-transform-origin: 50% 0%;\n transform-origin: 50% 0%;\n -webkit-transform: translate3d(0px, 110%, 0px) rotateX(-90deg);\n transform: translate3d(0px, 110%, 0px) rotateX(-90deg); }\n\n/*********************************************\n * SPEAKER NOTES\n *********************************************/\n.reveal aside.notes {\n display: none; }\n\n.reveal .speaker-notes {\n display: none;\n position: absolute;\n width: 70%;\n max-height: 15%;\n left: 15%;\n bottom: 26px;\n padding: 10px;\n z-index: 1;\n font-size: 18px;\n line-height: 1.4;\n color: #fff;\n background-color: rgba(0, 0, 0, 0.5);\n overflow: auto;\n box-sizing: border-box;\n text-align: left;\n font-family: Helvetica, sans-serif;\n -webkit-overflow-scrolling: touch; }\n\n.reveal .speaker-notes.visible:not(:empty) {\n display: block; }\n\n@media screen and (max-width: 1024px) {\n .reveal .speaker-notes {\n font-size: 14px; } }\n\n@media screen and (max-width: 600px) {\n .reveal .speaker-notes {\n width: 90%;\n left: 5%; } }\n\n/*********************************************\n * ZOOM PLUGIN\n *********************************************/\n.zoomed .reveal *,\n.zoomed .reveal *:before,\n.zoomed .reveal *:after {\n -webkit-backface-visibility: visible !important;\n backface-visibility: visible !important; }\n\n.zoomed .reveal .progress,\n.zoomed .reveal .controls {\n opacity: 0; }\n\n.zoomed .reveal .roll span {\n background: none; }\n\n.zoomed .reveal .roll span:after {\n visibility: hidden; }\n",
"slug": "reveal-js/css/reveal.css",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/reveal.css",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/reveal.scss": {
"text": "/*!\n * reveal.js\n * http://lab.hakim.se/reveal-js\n * MIT licensed\n *\n * Copyright (C) 2017 Hakim El Hattab, http://hakim.se\n */\n\n\n/*********************************************\n * RESET STYLES\n *********************************************/\n\nhtml, body, .reveal div, .reveal span, .reveal applet, .reveal object, .reveal iframe,\n.reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6, .reveal p, .reveal blockquote, .reveal pre,\n.reveal a, .reveal abbr, .reveal acronym, .reveal address, .reveal big, .reveal cite, .reveal code,\n.reveal del, .reveal dfn, .reveal em, .reveal img, .reveal ins, .reveal kbd, .reveal q, .reveal s, .reveal samp,\n.reveal small, .reveal strike, .reveal strong, .reveal sub, .reveal sup, .reveal tt, .reveal var,\n.reveal b, .reveal u, .reveal center,\n.reveal dl, .reveal dt, .reveal dd, .reveal ol, .reveal ul, .reveal li,\n.reveal fieldset, .reveal form, .reveal label, .reveal legend,\n.reveal table, .reveal caption, .reveal tbody, .reveal tfoot, .reveal thead, .reveal tr, .reveal th, .reveal td,\n.reveal article, .reveal aside, .reveal canvas, .reveal details, .reveal embed,\n.reveal figure, .reveal figcaption, .reveal footer, .reveal header, .reveal hgroup,\n.reveal menu, .reveal nav, .reveal output, .reveal ruby, .reveal section, .reveal summary,\n.reveal time, .reveal mark, .reveal audio, .reveal video {\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\tfont-size: 100%;\n\tfont: inherit;\n\tvertical-align: baseline;\n}\n\n.reveal article, .reveal aside, .reveal details, .reveal figcaption, .reveal figure,\n.reveal footer, .reveal header, .reveal hgroup, .reveal menu, .reveal nav, .reveal section {\n\tdisplay: block;\n}\n\n\n/*********************************************\n * GLOBAL STYLES\n *********************************************/\n\nhtml,\nbody {\n\twidth: 100%;\n\theight: 100%;\n\toverflow: hidden;\n}\n\nbody {\n\tposition: relative;\n\tline-height: 1;\n\n\tbackground-color: #fff;\n\tcolor: #000;\n}\n\n\n/*********************************************\n * VIEW FRAGMENTS\n *********************************************/\n\n.reveal .slides section .fragment {\n\topacity: 0;\n\tvisibility: hidden;\n\ttransition: all .2s ease;\n\n\t&.visible {\n\t\topacity: 1;\n\t\tvisibility: inherit;\n\t}\n}\n\n.reveal .slides section .fragment.grow {\n\topacity: 1;\n\tvisibility: inherit;\n\n\t&.visible {\n\t\ttransform: scale( 1.3 );\n\t}\n}\n\n.reveal .slides section .fragment.shrink {\n\topacity: 1;\n\tvisibility: inherit;\n\n\t&.visible {\n\t\ttransform: scale( 0.7 );\n\t}\n}\n\n.reveal .slides section .fragment.zoom-in {\n\ttransform: scale( 0.1 );\n\n\t&.visible {\n\t\ttransform: none;\n\t}\n}\n\n.reveal .slides section .fragment.fade-out {\n\topacity: 1;\n\tvisibility: inherit;\n\n\t&.visible {\n\t\topacity: 0;\n\t\tvisibility: hidden;\n\t}\n}\n\n.reveal .slides section .fragment.semi-fade-out {\n\topacity: 1;\n\tvisibility: inherit;\n\n\t&.visible {\n\t\topacity: 0.5;\n\t\tvisibility: inherit;\n\t}\n}\n\n.reveal .slides section .fragment.strike {\n\topacity: 1;\n\tvisibility: inherit;\n\n\t&.visible {\n\t\ttext-decoration: line-through;\n\t}\n}\n\n.reveal .slides section .fragment.fade-up {\n\ttransform: translate(0, 20%);\n\n\t&.visible {\n\t\ttransform: translate(0, 0);\n\t}\n}\n\n.reveal .slides section .fragment.fade-down {\n\ttransform: translate(0, -20%);\n\n\t&.visible {\n\t\ttransform: translate(0, 0);\n\t}\n}\n\n.reveal .slides section .fragment.fade-right {\n\ttransform: translate(-20%, 0);\n\n\t&.visible {\n\t\ttransform: translate(0, 0);\n\t}\n}\n\n.reveal .slides section .fragment.fade-left {\n\ttransform: translate(20%, 0);\n\n\t&.visible {\n\t\ttransform: translate(0, 0);\n\t}\n}\n\n.reveal .slides section .fragment.current-visible {\n\topacity: 0;\n\tvisibility: hidden;\n\n\t&.current-fragment {\n\t\topacity: 1;\n\t\tvisibility: inherit;\n\t}\n}\n\n.reveal .slides section .fragment.highlight-red,\n.reveal .slides section .fragment.highlight-current-red,\n.reveal .slides section .fragment.highlight-green,\n.reveal .slides section .fragment.highlight-current-green,\n.reveal .slides section .fragment.highlight-blue,\n.reveal .slides section .fragment.highlight-current-blue {\n\topacity: 1;\n\tvisibility: inherit;\n}\n\t.reveal .slides section .fragment.highlight-red.visible {\n\t\tcolor: #ff2c2d\n\t}\n\t.reveal .slides section .fragment.highlight-green.visible {\n\t\tcolor: #17ff2e;\n\t}\n\t.reveal .slides section .fragment.highlight-blue.visible {\n\t\tcolor: #1b91ff;\n\t}\n\n.reveal .slides section .fragment.highlight-current-red.current-fragment {\n\tcolor: #ff2c2d\n}\n.reveal .slides section .fragment.highlight-current-green.current-fragment {\n\tcolor: #17ff2e;\n}\n.reveal .slides section .fragment.highlight-current-blue.current-fragment {\n\tcolor: #1b91ff;\n}\n\n\n/*********************************************\n * DEFAULT ELEMENT STYLES\n *********************************************/\n\n/* Fixes issue in Chrome where italic fonts did not appear when printing to PDF */\n.reveal:after {\n content: '';\n font-style: italic;\n}\n\n.reveal iframe {\n\tz-index: 1;\n}\n\n/** Prevents layering issues in certain browser/transition combinations */\n.reveal a {\n\tposition: relative;\n}\n\n.reveal .stretch {\n\tmax-width: none;\n\tmax-height: none;\n}\n\n.reveal pre.stretch code {\n\theight: 100%;\n\tmax-height: 100%;\n\tbox-sizing: border-box;\n}\n\n\n/*********************************************\n * CONTROLS\n *********************************************/\n\n.reveal .controls {\n\tdisplay: none;\n\tposition: fixed;\n\twidth: 110px;\n\theight: 110px;\n\tz-index: 30;\n\tright: 10px;\n\tbottom: 10px;\n\n\t-webkit-user-select: none;\n}\n\n.reveal .controls button {\n\tpadding: 0;\n\tposition: absolute;\n\topacity: 0.05;\n\twidth: 0;\n\theight: 0;\n\tbackground-color: transparent;\n\tborder: 12px solid transparent;\n\ttransform: scale(.9999);\n\ttransition: all 0.2s ease;\n\t-webkit-appearance: none;\n\t-webkit-tap-highlight-color: rgba( 0, 0, 0, 0 );\n}\n\n.reveal .controls .enabled {\n\topacity: 0.7;\n\tcursor: pointer;\n}\n\n.reveal .controls .enabled:active {\n\tmargin-top: 1px;\n}\n\n\t.reveal .controls .navigate-left {\n\t\ttop: 42px;\n\n\t\tborder-right-width: 22px;\n\t\tborder-right-color: #000;\n\t}\n\t\t.reveal .controls .navigate-left.fragmented {\n\t\t\topacity: 0.3;\n\t\t}\n\n\t.reveal .controls .navigate-right {\n\t\tleft: 74px;\n\t\ttop: 42px;\n\n\t\tborder-left-width: 22px;\n\t\tborder-left-color: #000;\n\t}\n\t\t.reveal .controls .navigate-right.fragmented {\n\t\t\topacity: 0.3;\n\t\t}\n\n\t.reveal .controls .navigate-up {\n\t\tleft: 42px;\n\n\t\tborder-bottom-width: 22px;\n\t\tborder-bottom-color: #000;\n\t}\n\t\t.reveal .controls .navigate-up.fragmented {\n\t\t\topacity: 0.3;\n\t\t}\n\n\t.reveal .controls .navigate-down {\n\t\tleft: 42px;\n\t\ttop: 74px;\n\n\t\tborder-top-width: 22px;\n\t\tborder-top-color: #000;\n\t}\n\t\t.reveal .controls .navigate-down.fragmented {\n\t\t\topacity: 0.3;\n\t\t}\n\n\n/*********************************************\n * PROGRESS BAR\n *********************************************/\n\n.reveal .progress {\n\tposition: fixed;\n\tdisplay: none;\n\theight: 3px;\n\twidth: 100%;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 10;\n\n\tbackground-color: rgba( 0, 0, 0, 0.2 );\n}\n\t.reveal .progress:after {\n\t\tcontent: '';\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\theight: 20px;\n\t\twidth: 100%;\n\t\ttop: -20px;\n\t}\n\t.reveal .progress span {\n\t\tdisplay: block;\n\t\theight: 100%;\n\t\twidth: 0px;\n\n\t\tbackground-color: #000;\n\t\ttransition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);\n\t}\n\n/*********************************************\n * SLIDE NUMBER\n *********************************************/\n\n.reveal .slide-number {\n\tposition: fixed;\n\tdisplay: block;\n\tright: 8px;\n\tbottom: 8px;\n\tz-index: 31;\n\tfont-family: Helvetica, sans-serif;\n\tfont-size: 12px;\n\tline-height: 1;\n\tcolor: #fff;\n\tbackground-color: rgba( 0, 0, 0, 0.4 );\n\tpadding: 5px;\n}\n\n.reveal .slide-number-delimiter {\n\tmargin: 0 3px;\n}\n\n/*********************************************\n * SLIDES\n *********************************************/\n\n.reveal {\n\tposition: relative;\n\twidth: 100%;\n\theight: 100%;\n\toverflow: hidden;\n\ttouch-action: none;\n}\n\n.reveal .slides {\n\tposition: absolute;\n\twidth: 100%;\n\theight: 100%;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tmargin: auto;\n\tpointer-events: none;\n\n\toverflow: visible;\n\tz-index: 1;\n\ttext-align: center;\n\tperspective: 600px;\n\tperspective-origin: 50% 40%;\n}\n\n.reveal .slides>section {\n\t-ms-perspective: 600px;\n}\n\n.reveal .slides>section,\n.reveal .slides>section>section {\n\tdisplay: none;\n\tposition: absolute;\n\twidth: 100%;\n\tpadding: 20px 0px;\n\tpointer-events: auto;\n\n\tz-index: 10;\n\ttransform-style: flat;\n\ttransition: transform-origin 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),\n\t\t\t\ttransform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),\n\t\t\t\tvisibility 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),\n\t\t\t\topacity 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);\n}\n\n/* Global transition speed settings */\n.reveal[data-transition-speed=\"fast\"] .slides section {\n\ttransition-duration: 400ms;\n}\n.reveal[data-transition-speed=\"slow\"] .slides section {\n\ttransition-duration: 1200ms;\n}\n\n/* Slide-specific transition speed overrides */\n.reveal .slides section[data-transition-speed=\"fast\"] {\n\ttransition-duration: 400ms;\n}\n.reveal .slides section[data-transition-speed=\"slow\"] {\n\ttransition-duration: 1200ms;\n}\n\n.reveal .slides>section.stack {\n\tpadding-top: 0;\n\tpadding-bottom: 0;\n}\n\n.reveal .slides>section.present,\n.reveal .slides>section>section.present {\n\tdisplay: block;\n\tz-index: 11;\n\topacity: 1;\n}\n\n.reveal .slides>section:empty,\n.reveal .slides>section>section:empty,\n.reveal .slides>section[data-background-interactive],\n.reveal .slides>section>section[data-background-interactive] {\n\tpointer-events: none;\n}\n\n.reveal.center,\n.reveal.center .slides,\n.reveal.center .slides section {\n\tmin-height: 0 !important;\n}\n\n/* Don't allow interaction with invisible slides */\n.reveal .slides>section.future,\n.reveal .slides>section>section.future,\n.reveal .slides>section.past,\n.reveal .slides>section>section.past {\n\tpointer-events: none;\n}\n\n.reveal.overview .slides>section,\n.reveal.overview .slides>section>section {\n\tpointer-events: auto;\n}\n\n.reveal .slides>section.past,\n.reveal .slides>section.future,\n.reveal .slides>section>section.past,\n.reveal .slides>section>section.future {\n\topacity: 0;\n}\n\n\n/*********************************************\n * Mixins for readability of transitions\n *********************************************/\n\n@mixin transition-global($style) {\n\t.reveal .slides section[data-transition=#{$style}],\n\t.reveal.#{$style} .slides section:not([data-transition]) {\n\t\t@content;\n\t}\n}\n@mixin transition-stack($style) {\n\t.reveal .slides section[data-transition=#{$style}].stack,\n\t.reveal.#{$style} .slides section.stack {\n\t\t@content;\n\t}\n}\n@mixin transition-horizontal-past($style) {\n\t.reveal .slides>section[data-transition=#{$style}].past,\n\t.reveal .slides>section[data-transition~=#{$style}-out].past,\n\t.reveal.#{$style} .slides>section:not([data-transition]).past {\n\t\t@content;\n\t}\n}\n@mixin transition-horizontal-future($style) {\n\t.reveal .slides>section[data-transition=#{$style}].future,\n\t.reveal .slides>section[data-transition~=#{$style}-in].future,\n\t.reveal.#{$style} .slides>section:not([data-transition]).future {\n\t\t@content;\n\t}\n}\n\n@mixin transition-vertical-past($style) {\n\t.reveal .slides>section>section[data-transition=#{$style}].past,\n\t.reveal .slides>section>section[data-transition~=#{$style}-out].past,\n\t.reveal.#{$style} .slides>section>section:not([data-transition]).past {\n\t\t@content;\n\t}\n}\n@mixin transition-vertical-future($style) {\n\t.reveal .slides>section>section[data-transition=#{$style}].future,\n\t.reveal .slides>section>section[data-transition~=#{$style}-in].future,\n\t.reveal.#{$style} .slides>section>section:not([data-transition]).future {\n\t\t@content;\n\t}\n}\n\n/*********************************************\n * SLIDE TRANSITION\n * Aliased 'linear' for backwards compatibility\n *********************************************/\n\n@each $stylename in slide, linear {\n\t.reveal.#{$stylename} section {\n\t\tbackface-visibility: hidden;\n\t}\n\t@include transition-horizontal-past(#{$stylename}) {\n\t\ttransform: translate(-150%, 0);\n\t}\n\t@include transition-horizontal-future(#{$stylename}) {\n\t\ttransform: translate(150%, 0);\n\t}\n\t@include transition-vertical-past(#{$stylename}) {\n\t\ttransform: translate(0, -150%);\n\t}\n\t@include transition-vertical-future(#{$stylename}) {\n\t\ttransform: translate(0, 150%);\n\t}\n}\n\n/*********************************************\n * CONVEX TRANSITION\n * Aliased 'default' for backwards compatibility\n *********************************************/\n\n@each $stylename in default, convex {\n\t@include transition-stack(#{$stylename}) {\n\t\ttransform-style: preserve-3d;\n\t}\n\n\t@include transition-horizontal-past(#{$stylename}) {\n\t\ttransform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);\n\t}\n\t@include transition-horizontal-future(#{$stylename}) {\n\t\ttransform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);\n\t}\n\t@include transition-vertical-past(#{$stylename}) {\n\t\ttransform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0);\n\t}\n\t@include transition-vertical-future(#{$stylename}) {\n\t\ttransform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0);\n\t}\n}\n\n/*********************************************\n * CONCAVE TRANSITION\n *********************************************/\n\n@include transition-stack(concave) {\n\ttransform-style: preserve-3d;\n}\n\n@include transition-horizontal-past(concave) {\n\ttransform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);\n}\n@include transition-horizontal-future(concave) {\n\ttransform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);\n}\n@include transition-vertical-past(concave) {\n\ttransform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);\n}\n@include transition-vertical-future(concave) {\n\ttransform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);\n}\n\n\n/*********************************************\n * ZOOM TRANSITION\n *********************************************/\n\n@include transition-global(zoom) {\n\ttransition-timing-function: ease;\n}\n@include transition-horizontal-past(zoom) {\n\tvisibility: hidden;\n\ttransform: scale(16);\n}\n@include transition-horizontal-future(zoom) {\n\tvisibility: hidden;\n\ttransform: scale(0.2);\n}\n@include transition-vertical-past(zoom) {\n\ttransform: translate(0, -150%);\n}\n@include transition-vertical-future(zoom) {\n\ttransform: translate(0, 150%);\n}\n\n\n/*********************************************\n * CUBE TRANSITION\n *\n * WARNING:\n * this is deprecated and will be removed in a\n * future version.\n *********************************************/\n\n.reveal.cube .slides {\n\tperspective: 1300px;\n}\n\n.reveal.cube .slides section {\n\tpadding: 30px;\n\tmin-height: 700px;\n\tbackface-visibility: hidden;\n\tbox-sizing: border-box;\n\ttransform-style: preserve-3d;\n}\n\t.reveal.center.cube .slides section {\n\t\tmin-height: 0;\n\t}\n\t.reveal.cube .slides section:not(.stack):before {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tleft: 0;\n\t\ttop: 0;\n\t\tbackground: rgba(0,0,0,0.1);\n\t\tborder-radius: 4px;\n\t\ttransform: translateZ( -20px );\n\t}\n\t.reveal.cube .slides section:not(.stack):after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tdisplay: block;\n\t\twidth: 90%;\n\t\theight: 30px;\n\t\tleft: 5%;\n\t\tbottom: 0;\n\t\tbackground: none;\n\t\tz-index: 1;\n\n\t\tborder-radius: 4px;\n\t\tbox-shadow: 0px 95px 25px rgba(0,0,0,0.2);\n\t\ttransform: translateZ(-90px) rotateX( 65deg );\n\t}\n\n.reveal.cube .slides>section.stack {\n\tpadding: 0;\n\tbackground: none;\n}\n\n.reveal.cube .slides>section.past {\n\ttransform-origin: 100% 0%;\n\ttransform: translate3d(-100%, 0, 0) rotateY(-90deg);\n}\n\n.reveal.cube .slides>section.future {\n\ttransform-origin: 0% 0%;\n\ttransform: translate3d(100%, 0, 0) rotateY(90deg);\n}\n\n.reveal.cube .slides>section>section.past {\n\ttransform-origin: 0% 100%;\n\ttransform: translate3d(0, -100%, 0) rotateX(90deg);\n}\n\n.reveal.cube .slides>section>section.future {\n\ttransform-origin: 0% 0%;\n\ttransform: translate3d(0, 100%, 0) rotateX(-90deg);\n}\n\n\n/*********************************************\n * PAGE TRANSITION\n *\n * WARNING:\n * this is deprecated and will be removed in a\n * future version.\n *********************************************/\n\n.reveal.page .slides {\n\tperspective-origin: 0% 50%;\n\tperspective: 3000px;\n}\n\n.reveal.page .slides section {\n\tpadding: 30px;\n\tmin-height: 700px;\n\tbox-sizing: border-box;\n\ttransform-style: preserve-3d;\n}\n\t.reveal.page .slides section.past {\n\t\tz-index: 12;\n\t}\n\t.reveal.page .slides section:not(.stack):before {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tleft: 0;\n\t\ttop: 0;\n\t\tbackground: rgba(0,0,0,0.1);\n\t\ttransform: translateZ( -20px );\n\t}\n\t.reveal.page .slides section:not(.stack):after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tdisplay: block;\n\t\twidth: 90%;\n\t\theight: 30px;\n\t\tleft: 5%;\n\t\tbottom: 0;\n\t\tbackground: none;\n\t\tz-index: 1;\n\n\t\tborder-radius: 4px;\n\t\tbox-shadow: 0px 95px 25px rgba(0,0,0,0.2);\n\n\t\t-webkit-transform: translateZ(-90px) rotateX( 65deg );\n\t}\n\n.reveal.page .slides>section.stack {\n\tpadding: 0;\n\tbackground: none;\n}\n\n.reveal.page .slides>section.past {\n\ttransform-origin: 0% 0%;\n\ttransform: translate3d(-40%, 0, 0) rotateY(-80deg);\n}\n\n.reveal.page .slides>section.future {\n\ttransform-origin: 100% 0%;\n\ttransform: translate3d(0, 0, 0);\n}\n\n.reveal.page .slides>section>section.past {\n\ttransform-origin: 0% 0%;\n\ttransform: translate3d(0, -40%, 0) rotateX(80deg);\n}\n\n.reveal.page .slides>section>section.future {\n\ttransform-origin: 0% 100%;\n\ttransform: translate3d(0, 0, 0);\n}\n\n\n/*********************************************\n * FADE TRANSITION\n *********************************************/\n\n.reveal .slides section[data-transition=fade],\n.reveal.fade .slides section:not([data-transition]),\n.reveal.fade .slides>section>section:not([data-transition]) {\n\ttransform: none;\n\ttransition: opacity 0.5s;\n}\n\n\n.reveal.fade.overview .slides section,\n.reveal.fade.overview .slides>section>section {\n\ttransition: none;\n}\n\n\n/*********************************************\n * NO TRANSITION\n *********************************************/\n\n@include transition-global(none) {\n\ttransform: none;\n\ttransition: none;\n}\n\n\n/*********************************************\n * PAUSED MODE\n *********************************************/\n\n.reveal .pause-overlay {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n\tbackground: black;\n\tvisibility: hidden;\n\topacity: 0;\n\tz-index: 100;\n\ttransition: all 1s ease;\n}\n.reveal.paused .pause-overlay {\n\tvisibility: visible;\n\topacity: 1;\n}\n\n\n/*********************************************\n * FALLBACK\n *********************************************/\n\n.no-transforms {\n\toverflow-y: auto;\n}\n\n.no-transforms .reveal .slides {\n\tposition: relative;\n\twidth: 80%;\n\theight: auto !important;\n\ttop: 0;\n\tleft: 50%;\n\tmargin: 0;\n\ttext-align: center;\n}\n\n.no-transforms .reveal .controls,\n.no-transforms .reveal .progress {\n\tdisplay: none !important;\n}\n\n.no-transforms .reveal .slides section {\n\tdisplay: block !important;\n\topacity: 1 !important;\n\tposition: relative !important;\n\theight: auto;\n\tmin-height: 0;\n\ttop: 0;\n\tleft: -50%;\n\tmargin: 70px 0;\n\ttransform: none;\n}\n\n.no-transforms .reveal .slides section section {\n\tleft: 0;\n}\n\n.reveal .no-transition,\n.reveal .no-transition * {\n\ttransition: none !important;\n}\n\n\n/*********************************************\n * PER-SLIDE BACKGROUNDS\n *********************************************/\n\n.reveal .backgrounds {\n\tposition: absolute;\n\twidth: 100%;\n\theight: 100%;\n\ttop: 0;\n\tleft: 0;\n\tperspective: 600px;\n}\n\t.reveal .slide-background {\n\t\tdisplay: none;\n\t\tposition: absolute;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\topacity: 0;\n\t\tvisibility: hidden;\n\t\toverflow: hidden;\n\n\t\tbackground-color: rgba( 0, 0, 0, 0 );\n\t\tbackground-position: 50% 50%;\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-size: cover;\n\n\t\ttransition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);\n\t}\n\n\t.reveal .slide-background.stack {\n\t\tdisplay: block;\n\t}\n\n\t.reveal .slide-background.present {\n\t\topacity: 1;\n\t\tvisibility: visible;\n\t\tz-index: 2;\n\t}\n\n\t.print-pdf .reveal .slide-background {\n\t\topacity: 1 !important;\n\t\tvisibility: visible !important;\n\t}\n\n/* Video backgrounds */\n.reveal .slide-background video {\n\tposition: absolute;\n\twidth: 100%;\n\theight: 100%;\n\tmax-width: none;\n\tmax-height: none;\n\ttop: 0;\n\tleft: 0;\n\tobject-fit: cover;\n}\n\t.reveal .slide-background[data-background-size=\"contain\"] video {\n\t\tobject-fit: contain;\n\t}\n\n/* Immediate transition style */\n.reveal[data-background-transition=none]>.backgrounds .slide-background,\n.reveal>.backgrounds .slide-background[data-background-transition=none] {\n\ttransition: none;\n}\n\n/* Slide */\n.reveal[data-background-transition=slide]>.backgrounds .slide-background,\n.reveal>.backgrounds .slide-background[data-background-transition=slide] {\n\topacity: 1;\n\tbackface-visibility: hidden;\n}\n\t.reveal[data-background-transition=slide]>.backgrounds .slide-background.past,\n\t.reveal>.backgrounds .slide-background.past[data-background-transition=slide] {\n\t\ttransform: translate(-100%, 0);\n\t}\n\t.reveal[data-background-transition=slide]>.backgrounds .slide-background.future,\n\t.reveal>.backgrounds .slide-background.future[data-background-transition=slide] {\n\t\ttransform: translate(100%, 0);\n\t}\n\n\t.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.past,\n\t.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=slide] {\n\t\ttransform: translate(0, -100%);\n\t}\n\t.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.future,\n\t.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=slide] {\n\t\ttransform: translate(0, 100%);\n\t}\n\n\n/* Convex */\n.reveal[data-background-transition=convex]>.backgrounds .slide-background.past,\n.reveal>.backgrounds .slide-background.past[data-background-transition=convex] {\n\topacity: 0;\n\ttransform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);\n}\n.reveal[data-background-transition=convex]>.backgrounds .slide-background.future,\n.reveal>.backgrounds .slide-background.future[data-background-transition=convex] {\n\topacity: 0;\n\ttransform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);\n}\n\n.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.past,\n.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=convex] {\n\topacity: 0;\n\ttransform: translate3d(0, -100%, 0) rotateX(90deg) translate3d(0, -100%, 0);\n}\n.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.future,\n.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=convex] {\n\topacity: 0;\n\ttransform: translate3d(0, 100%, 0) rotateX(-90deg) translate3d(0, 100%, 0);\n}\n\n\n/* Concave */\n.reveal[data-background-transition=concave]>.backgrounds .slide-background.past,\n.reveal>.backgrounds .slide-background.past[data-background-transition=concave] {\n\topacity: 0;\n\ttransform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);\n}\n.reveal[data-background-transition=concave]>.backgrounds .slide-background.future,\n.reveal>.backgrounds .slide-background.future[data-background-transition=concave] {\n\topacity: 0;\n\ttransform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);\n}\n\n.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.past,\n.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=concave] {\n\topacity: 0;\n\ttransform: translate3d(0, -100%, 0) rotateX(-90deg) translate3d(0, -100%, 0);\n}\n.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.future,\n.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=concave] {\n\topacity: 0;\n\ttransform: translate3d(0, 100%, 0) rotateX(90deg) translate3d(0, 100%, 0);\n}\n\n/* Zoom */\n.reveal[data-background-transition=zoom]>.backgrounds .slide-background,\n.reveal>.backgrounds .slide-background[data-background-transition=zoom] {\n\ttransition-timing-function: ease;\n}\n\n.reveal[data-background-transition=zoom]>.backgrounds .slide-background.past,\n.reveal>.backgrounds .slide-background.past[data-background-transition=zoom] {\n\topacity: 0;\n\tvisibility: hidden;\n\ttransform: scale(16);\n}\n.reveal[data-background-transition=zoom]>.backgrounds .slide-background.future,\n.reveal>.backgrounds .slide-background.future[data-background-transition=zoom] {\n\topacity: 0;\n\tvisibility: hidden;\n\ttransform: scale(0.2);\n}\n\n.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.past,\n.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=zoom] {\n\topacity: 0;\n\t\tvisibility: hidden;\n\t\ttransform: scale(16);\n}\n.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.future,\n.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=zoom] {\n\topacity: 0;\n\tvisibility: hidden;\n\ttransform: scale(0.2);\n}\n\n\n/* Global transition speed settings */\n.reveal[data-transition-speed=\"fast\"]>.backgrounds .slide-background {\n\ttransition-duration: 400ms;\n}\n.reveal[data-transition-speed=\"slow\"]>.backgrounds .slide-background {\n\ttransition-duration: 1200ms;\n}\n\n\n/*********************************************\n * OVERVIEW\n *********************************************/\n\n.reveal.overview {\n\tperspective-origin: 50% 50%;\n\tperspective: 700px;\n\n\t.slides {\n\t\t// Fixes overview rendering errors in FF48+, not applied to\n\t\t// other browsers since it degrades performance\n\t\t-moz-transform-style: preserve-3d;\n\t}\n\n\t.slides section {\n\t\theight: 100%;\n\t\ttop: 0 !important;\n\t\topacity: 1 !important;\n\t\toverflow: hidden;\n\t\tvisibility: visible !important;\n\t\tcursor: pointer;\n\t\tbox-sizing: border-box;\n\t}\n\t.slides section:hover,\n\t.slides section.present {\n\t\toutline: 10px solid rgba(150,150,150,0.4);\n\t\toutline-offset: 10px;\n\t}\n\t.slides section .fragment {\n\t\topacity: 1;\n\t\ttransition: none;\n\t}\n\t.slides section:after,\n\t.slides section:before {\n\t\tdisplay: none !important;\n\t}\n\t.slides>section.stack {\n\t\tpadding: 0;\n\t\ttop: 0 !important;\n\t\tbackground: none;\n\t\toutline: none;\n\t\toverflow: visible;\n\t}\n\n\t.backgrounds {\n\t\tperspective: inherit;\n\n\t\t// Fixes overview rendering errors in FF48+, not applied to\n\t\t// other browsers since it degrades performance\n\t\t-moz-transform-style: preserve-3d;\n\t}\n\n\t.backgrounds .slide-background {\n\t\topacity: 1;\n\t\tvisibility: visible;\n\n\t\t// This can't be applied to the slide itself in Safari\n\t\toutline: 10px solid rgba(150,150,150,0.1);\n\t\toutline-offset: 10px;\n\t}\n\n\t.backgrounds .slide-background.stack {\n\t\toverflow: visible;\n\t}\n}\n\n// Disable transitions transitions while we're activating\n// or deactivating the overview mode.\n.reveal.overview .slides section,\n.reveal.overview-deactivating .slides section {\n\ttransition: none;\n}\n\n.reveal.overview .backgrounds .slide-background,\n.reveal.overview-deactivating .backgrounds .slide-background {\n\ttransition: none;\n}\n\n\n/*********************************************\n * RTL SUPPORT\n *********************************************/\n\n.reveal.rtl .slides,\n.reveal.rtl .slides h1,\n.reveal.rtl .slides h2,\n.reveal.rtl .slides h3,\n.reveal.rtl .slides h4,\n.reveal.rtl .slides h5,\n.reveal.rtl .slides h6 {\n\tdirection: rtl;\n\tfont-family: sans-serif;\n}\n\n.reveal.rtl pre,\n.reveal.rtl code {\n\tdirection: ltr;\n}\n\n.reveal.rtl ol,\n.reveal.rtl ul {\n\ttext-align: right;\n}\n\n.reveal.rtl .progress span {\n\tfloat: right\n}\n\n/*********************************************\n * PARALLAX BACKGROUND\n *********************************************/\n\n.reveal.has-parallax-background .backgrounds {\n\ttransition: all 0.8s ease;\n}\n\n/* Global transition speed settings */\n.reveal.has-parallax-background[data-transition-speed=\"fast\"] .backgrounds {\n\ttransition-duration: 400ms;\n}\n.reveal.has-parallax-background[data-transition-speed=\"slow\"] .backgrounds {\n\ttransition-duration: 1200ms;\n}\n\n\n/*********************************************\n * LINK PREVIEW OVERLAY\n *********************************************/\n\n.reveal .overlay {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n\tz-index: 1000;\n\tbackground: rgba( 0, 0, 0, 0.9 );\n\topacity: 0;\n\tvisibility: hidden;\n\ttransition: all 0.3s ease;\n}\n\t.reveal .overlay.visible {\n\t\topacity: 1;\n\t\tvisibility: visible;\n\t}\n\n\t.reveal .overlay .spinner {\n\t\tposition: absolute;\n\t\tdisplay: block;\n\t\ttop: 50%;\n\t\tleft: 50%;\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tmargin: -16px 0 0 -16px;\n\t\tz-index: 10;\n\t\tbackground-image: url(data:image/gif;base64,R0lGODlhIAAgAPMAAJmZmf%2F%2F%2F6%2Bvr8nJybW1tcDAwOjo6Nvb26ioqKOjo7Ozs%2FLy8vz8%2FAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ%2FV%2FnmOM82XiHRLYKhKP1oZmADdEAAAh%2BQQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY%2FCZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB%2BA4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6%2BHo7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq%2BB6QDtuetcaBPnW6%2BO7wDHpIiK9SaVK5GgV543tzjgGcghAgAh%2BQQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK%2B%2BG%2Bw48edZPK%2BM6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE%2BG%2BcD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm%2BFNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk%2BaV%2BoJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0%2FVNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc%2BXiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30%2FiI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE%2FjiuL04RGEBgwWhShRgQExHBAAh%2BQQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR%2BipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY%2BYip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd%2BMFCN6HAAIKgNggY0KtEBAAh%2BQQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1%2BvsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d%2BjYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg%2BygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0%2Bbm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h%2BKr0SJ8MFihpNbx%2B4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX%2BBP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA%3D%3D);\n\n\t\tvisibility: visible;\n\t\topacity: 0.6;\n\t\ttransition: all 0.3s ease;\n\t}\n\n\t.reveal .overlay header {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\ttop: 0;\n\t\twidth: 100%;\n\t\theight: 40px;\n\t\tz-index: 2;\n\t\tborder-bottom: 1px solid #222;\n\t}\n\t\t.reveal .overlay header a {\n\t\t\tdisplay: inline-block;\n\t\t\twidth: 40px;\n\t\t\theight: 40px;\n\t\t\tline-height: 36px;\n\t\t\tpadding: 0 10px;\n\t\t\tfloat: right;\n\t\t\topacity: 0.6;\n\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t\t\t.reveal .overlay header a:hover {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t\t.reveal .overlay header a .icon {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\twidth: 20px;\n\t\t\t\theight: 20px;\n\n\t\t\t\tbackground-position: 50% 50%;\n\t\t\t\tbackground-size: 100%;\n\t\t\t\tbackground-repeat: no-repeat;\n\t\t\t}\n\t\t\t.reveal .overlay header a.close .icon {\n\t\t\t\tbackground-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABkklEQVRYR8WX4VHDMAxG6wnoJrABZQPYBCaBTWAD2g1gE5gg6OOsXuxIlr40d81dfrSJ9V4c2VLK7spHuTJ/5wpM07QXuXc5X0opX2tEJcadjHuV80li/FgxTIEK/5QBCICBD6xEhSMGHgQPgBgLiYVAB1dpSqKDawxTohFw4JSEA3clzgIBPCURwE2JucBR7rhPJJv5OpJwDX+SfDjgx1wACQeJG1aChP9K/IMmdZ8DtESV1WyP3Bt4MwM6sj4NMxMYiqUWHQu4KYA/SYkIjOsm3BXYWMKFDwU2khjCQ4ELJUJ4SmClRArOCmSXGuKma0fYD5CbzHxFpCSGAhfAVSSUGDUk2BWZaff2g6GE15BsBQ9nwmpIGDiyHQddwNTMKkbZaf9fajXQca1EX44puJZUsnY0ObGmITE3GVLCbEhQUjGVt146j6oasWN+49Vph2w1pZ5EansNZqKBm1txbU57iRRcZ86RWMDdWtBJUHBHwoQPi1GV+JCbntmvok7iTX4/Up9mgyTc/FJYDTcndgH/AA5A/CHsyEkVAAAAAElFTkSuQmCC);\n\t\t\t}\n\t\t\t.reveal .overlay header a.external .icon {\n\t\t\t\tbackground-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAcElEQVRYR+2WSQoAIQwEzf8f7XiOMkUQxUPlGkM3hVmiQfQR9GYnH1SsAQlI4DiBqkCMoNb9y2e90IAEJPAcgdznU9+engMaeJ7Azh5Y1U67gAho4DqBqmB1buAf0MB1AlVBek83ZPkmJMGc1wAR+AAqod/B97TRpQAAAABJRU5ErkJggg==);\n\t\t\t}\n\n\t.reveal .overlay .viewport {\n\t\tposition: absolute;\n\t\tdisplay: flex;\n\t\ttop: 40px;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\tleft: 0;\n\t}\n\n\t.reveal .overlay.overlay-preview .viewport iframe {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tmax-width: 100%;\n\t\tmax-height: 100%;\n\t\tborder: 0;\n\n\t\topacity: 0;\n\t\tvisibility: hidden;\n\t\ttransition: all 0.3s ease;\n\t}\n\n\t.reveal .overlay.overlay-preview.loaded .viewport iframe {\n\t\topacity: 1;\n\t\tvisibility: visible;\n\t}\n\n\t.reveal .overlay.overlay-preview.loaded .viewport-inner {\n\t\tposition: absolute;\n\t\tz-index: -1;\n\t\tleft: 0;\n\t\ttop: 45%;\n\t\twidth: 100%;\n\t\ttext-align: center;\n\t\tletter-spacing: normal;\n\t}\n\t.reveal .overlay.overlay-preview .x-frame-error {\n\t\topacity: 0;\n\t\ttransition: opacity 0.3s ease 0.3s;\n\t}\n\t.reveal .overlay.overlay-preview.loaded .x-frame-error {\n\t\topacity: 1;\n\t}\n\n\t.reveal .overlay.overlay-preview.loaded .spinner {\n\t\topacity: 0;\n\t\tvisibility: hidden;\n\t\ttransform: scale(0.2);\n\t}\n\n\t.reveal .overlay.overlay-help .viewport {\n\t\toverflow: auto;\n\t\tcolor: #fff;\n\t}\n\n\t.reveal .overlay.overlay-help .viewport .viewport-inner {\n\t\twidth: 600px;\n\t\tmargin: auto;\n\t\tpadding: 20px 20px 80px 20px;\n\t\ttext-align: center;\n\t\tletter-spacing: normal;\n\t}\n\n\t.reveal .overlay.overlay-help .viewport .viewport-inner .title {\n\t\tfont-size: 20px;\n\t}\n\n\t.reveal .overlay.overlay-help .viewport .viewport-inner table {\n\t\tborder: 1px solid #fff;\n\t\tborder-collapse: collapse;\n\t\tfont-size: 16px;\n\t}\n\n\t.reveal .overlay.overlay-help .viewport .viewport-inner table th,\n\t.reveal .overlay.overlay-help .viewport .viewport-inner table td {\n\t\twidth: 200px;\n\t\tpadding: 14px;\n\t\tborder: 1px solid #fff;\n\t\tvertical-align: middle;\n\t}\n\n\t.reveal .overlay.overlay-help .viewport .viewport-inner table th {\n\t\tpadding-top: 20px;\n\t\tpadding-bottom: 20px;\n\t}\n\n\n\n/*********************************************\n * PLAYBACK COMPONENT\n *********************************************/\n\n.reveal .playback {\n\tposition: fixed;\n\tleft: 15px;\n\tbottom: 20px;\n\tz-index: 30;\n\tcursor: pointer;\n\ttransition: all 400ms ease;\n}\n\n.reveal.overview .playback {\n\topacity: 0;\n\tvisibility: hidden;\n}\n\n\n/*********************************************\n * ROLLING LINKS\n *********************************************/\n\n.reveal .roll {\n\tdisplay: inline-block;\n\tline-height: 1.2;\n\toverflow: hidden;\n\n\tvertical-align: top;\n\tperspective: 400px;\n\tperspective-origin: 50% 50%;\n}\n\t.reveal .roll:hover {\n\t\tbackground: none;\n\t\ttext-shadow: none;\n\t}\n.reveal .roll span {\n\tdisplay: block;\n\tposition: relative;\n\tpadding: 0 2px;\n\n\tpointer-events: none;\n\ttransition: all 400ms ease;\n\ttransform-origin: 50% 0%;\n\ttransform-style: preserve-3d;\n\tbackface-visibility: hidden;\n}\n\t.reveal .roll:hover span {\n\t background: rgba(0,0,0,0.5);\n\t transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg );\n\t}\n.reveal .roll span:after {\n\tcontent: attr(data-title);\n\n\tdisplay: block;\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\tpadding: 0 2px;\n\tbackface-visibility: hidden;\n\ttransform-origin: 50% 0%;\n\ttransform: translate3d( 0px, 110%, 0px ) rotateX( -90deg );\n}\n\n\n/*********************************************\n * SPEAKER NOTES\n *********************************************/\n\n// Hide on-page notes\n.reveal aside.notes {\n\tdisplay: none;\n}\n\n// An interface element that can optionally be used to show the\n// speaker notes to all viewers, on top of the presentation\n.reveal .speaker-notes {\n\tdisplay: none;\n\tposition: absolute;\n\twidth: 70%;\n\tmax-height: 15%;\n\tleft: 15%;\n\tbottom: 26px;\n\tpadding: 10px;\n\tz-index: 1;\n\tfont-size: 18px;\n\tline-height: 1.4;\n\tcolor: #fff;\n\tbackground-color: rgba(0,0,0,0.5);\n\toverflow: auto;\n\tbox-sizing: border-box;\n\ttext-align: left;\n\tfont-family: Helvetica, sans-serif;\n\t-webkit-overflow-scrolling: touch;\n}\n\n.reveal .speaker-notes.visible:not(:empty) {\n\tdisplay: block;\n}\n\n@media screen and (max-width: 1024px) {\n\t.reveal .speaker-notes {\n\t\tfont-size: 14px;\n\t}\n}\n\n@media screen and (max-width: 600px) {\n\t.reveal .speaker-notes {\n\t\twidth: 90%;\n\t\tleft: 5%;\n\t}\n}\n\n\n/*********************************************\n * ZOOM PLUGIN\n *********************************************/\n\n.zoomed .reveal *,\n.zoomed .reveal *:before,\n.zoomed .reveal *:after {\n\tbackface-visibility: visible !important;\n}\n\n.zoomed .reveal .progress,\n.zoomed .reveal .controls {\n\topacity: 0;\n}\n\n.zoomed .reveal .roll span {\n\tbackground: none;\n}\n\n.zoomed .reveal .roll span:after {\n\tvisibility: hidden;\n}\n",
"slug": "reveal-js/css/reveal.scss",
"type": "text/scss",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/reveal.scss",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/beige.css": {
"text": "/**\n * Beige theme for reveal.js.\n *\n * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se\n */\n@import url(../../lib/font/league-gothic/league-gothic.css);\n@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);\n/*********************************************\n * GLOBAL STYLES\n *********************************************/\nbody {\n background: #f7f2d3;\n background: -moz-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);\n background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, white), color-stop(100%, #f7f2d3));\n background: -webkit-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);\n background: -o-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);\n background: -ms-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);\n background: radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);\n background-color: #f7f3de; }\n\n.reveal {\n font-family: \"Lato\", sans-serif;\n font-size: 40px;\n font-weight: normal;\n color: #333; }\n\n::selection {\n color: #fff;\n background: rgba(79, 64, 28, 0.99);\n text-shadow: none; }\n\n::-moz-selection {\n color: #fff;\n background: rgba(79, 64, 28, 0.99);\n text-shadow: none; }\n\n.reveal .slides > section,\n.reveal .slides > section > section {\n line-height: 1.3;\n font-weight: inherit; }\n\n/*********************************************\n * HEADERS\n *********************************************/\n.reveal h1,\n.reveal h2,\n.reveal h3,\n.reveal h4,\n.reveal h5,\n.reveal h6 {\n margin: 0 0 20px 0;\n color: #333;\n font-family: \"League Gothic\", Impact, sans-serif;\n font-weight: normal;\n line-height: 1.2;\n letter-spacing: normal;\n text-transform: uppercase;\n text-shadow: none;\n word-wrap: break-word; }\n\n.reveal h1 {\n font-size: 3.77em; }\n\n.reveal h2 {\n font-size: 2.11em; }\n\n.reveal h3 {\n font-size: 1.55em; }\n\n.reveal h4 {\n font-size: 1em; }\n\n.reveal h1 {\n text-shadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15); }\n\n/*********************************************\n * OTHER\n *********************************************/\n.reveal p {\n margin: 20px 0;\n line-height: 1.3; }\n\n/* Ensure certain elements are never larger than the slide itself */\n.reveal img,\n.reveal video,\n.reveal iframe {\n max-width: 95%;\n max-height: 95%; }\n\n.reveal strong,\n.reveal b {\n font-weight: bold; }\n\n.reveal em {\n font-style: italic; }\n\n.reveal ol,\n.reveal dl,\n.reveal ul {\n display: inline-block;\n text-align: left;\n margin: 0 0 0 1em; }\n\n.reveal ol {\n list-style-type: decimal; }\n\n.reveal ul {\n list-style-type: disc; }\n\n.reveal ul ul {\n list-style-type: square; }\n\n.reveal ul ul ul {\n list-style-type: circle; }\n\n.reveal ul ul,\n.reveal ul ol,\n.reveal ol ol,\n.reveal ol ul {\n display: block;\n margin-left: 40px; }\n\n.reveal dt {\n font-weight: bold; }\n\n.reveal dd {\n margin-left: 40px; }\n\n.reveal q,\n.reveal blockquote {\n quotes: none; }\n\n.reveal blockquote {\n display: block;\n position: relative;\n width: 70%;\n margin: 20px auto;\n padding: 5px;\n font-style: italic;\n background: rgba(255, 255, 255, 0.05);\n box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }\n\n.reveal blockquote p:first-child,\n.reveal blockquote p:last-child {\n display: inline-block; }\n\n.reveal q {\n font-style: italic; }\n\n.reveal pre {\n display: block;\n position: relative;\n width: 90%;\n margin: 20px auto;\n text-align: left;\n font-size: 0.55em;\n font-family: monospace;\n line-height: 1.2em;\n word-wrap: break-word;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); }\n\n.reveal code {\n font-family: monospace; }\n\n.reveal pre code {\n display: block;\n padding: 5px;\n overflow: auto;\n max-height: 400px;\n word-wrap: normal; }\n\n.reveal table {\n margin: auto;\n border-collapse: collapse;\n border-spacing: 0; }\n\n.reveal table th {\n font-weight: bold; }\n\n.reveal table th,\n.reveal table td {\n text-align: left;\n padding: 0.2em 0.5em 0.2em 0.5em;\n border-bottom: 1px solid; }\n\n.reveal table th[align=\"center\"],\n.reveal table td[align=\"center\"] {\n text-align: center; }\n\n.reveal table th[align=\"right\"],\n.reveal table td[align=\"right\"] {\n text-align: right; }\n\n.reveal table tbody tr:last-child th,\n.reveal table tbody tr:last-child td {\n border-bottom: none; }\n\n.reveal sup {\n vertical-align: super; }\n\n.reveal sub {\n vertical-align: sub; }\n\n.reveal small {\n display: inline-block;\n font-size: 0.6em;\n line-height: 1.2em;\n vertical-align: top; }\n\n.reveal small * {\n vertical-align: top; }\n\n/*********************************************\n * LINKS\n *********************************************/\n.reveal a {\n color: #8b743d;\n text-decoration: none;\n -webkit-transition: color .15s ease;\n -moz-transition: color .15s ease;\n transition: color .15s ease; }\n\n.reveal a:hover {\n color: #c0a86e;\n text-shadow: none;\n border: none; }\n\n.reveal .roll span:after {\n color: #fff;\n background: #564826; }\n\n/*********************************************\n * IMAGES\n *********************************************/\n.reveal section img {\n margin: 15px 0px;\n background: rgba(255, 255, 255, 0.12);\n border: 4px solid #333;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }\n\n.reveal section img.plain {\n border: 0;\n box-shadow: none; }\n\n.reveal a img {\n -webkit-transition: all .15s linear;\n -moz-transition: all .15s linear;\n transition: all .15s linear; }\n\n.reveal a:hover img {\n background: rgba(255, 255, 255, 0.2);\n border-color: #8b743d;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }\n\n/*********************************************\n * NAVIGATION CONTROLS\n *********************************************/\n.reveal .controls .navigate-left,\n.reveal .controls .navigate-left.enabled {\n border-right-color: #8b743d; }\n\n.reveal .controls .navigate-right,\n.reveal .controls .navigate-right.enabled {\n border-left-color: #8b743d; }\n\n.reveal .controls .navigate-up,\n.reveal .controls .navigate-up.enabled {\n border-bottom-color: #8b743d; }\n\n.reveal .controls .navigate-down,\n.reveal .controls .navigate-down.enabled {\n border-top-color: #8b743d; }\n\n.reveal .controls .navigate-left.enabled:hover {\n border-right-color: #c0a86e; }\n\n.reveal .controls .navigate-right.enabled:hover {\n border-left-color: #c0a86e; }\n\n.reveal .controls .navigate-up.enabled:hover {\n border-bottom-color: #c0a86e; }\n\n.reveal .controls .navigate-down.enabled:hover {\n border-top-color: #c0a86e; }\n\n/*********************************************\n * PROGRESS BAR\n *********************************************/\n.reveal .progress {\n background: rgba(0, 0, 0, 0.2); }\n\n.reveal .progress span {\n background: #8b743d;\n -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }\n",
"slug": "reveal-js/css/theme/beige.css",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/beige.css",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/black.css": {
"text": "/**\n * Black theme for reveal.js. This is the opposite of the 'white' theme.\n *\n * By Hakim El Hattab, http://hakim.se\n */\n@import url(../../lib/font/source-sans-pro/source-sans-pro.css);\nsection.has-light-background, section.has-light-background h1, section.has-light-background h2, section.has-light-background h3, section.has-light-background h4, section.has-light-background h5, section.has-light-background h6 {\n color: #222; }\n\n/*********************************************\n * GLOBAL STYLES\n *********************************************/\nbody {\n background: #222;\n background-color: #222; }\n\n.reveal {\n font-family: \"Source Sans Pro\", Helvetica, sans-serif;\n font-size: 42px;\n font-weight: normal;\n color: #fff; }\n\n::selection {\n color: #fff;\n background: #bee4fd;\n text-shadow: none; }\n\n::-moz-selection {\n color: #fff;\n background: #bee4fd;\n text-shadow: none; }\n\n.reveal .slides > section,\n.reveal .slides > section > section {\n line-height: 1.3;\n font-weight: inherit; }\n\n/*********************************************\n * HEADERS\n *********************************************/\n.reveal h1,\n.reveal h2,\n.reveal h3,\n.reveal h4,\n.reveal h5,\n.reveal h6 {\n margin: 0 0 20px 0;\n color: #fff;\n font-family: \"Source Sans Pro\", Helvetica, sans-serif;\n font-weight: 600;\n line-height: 1.2;\n letter-spacing: normal;\n text-transform: uppercase;\n text-shadow: none;\n word-wrap: break-word; }\n\n.reveal h1 {\n font-size: 2.5em; }\n\n.reveal h2 {\n font-size: 1.6em; }\n\n.reveal h3 {\n font-size: 1.3em; }\n\n.reveal h4 {\n font-size: 1em; }\n\n.reveal h1 {\n text-shadow: none; }\n\n/*********************************************\n * OTHER\n *********************************************/\n.reveal p {\n margin: 20px 0;\n line-height: 1.3; }\n\n/* Ensure certain elements are never larger than the slide itself */\n.reveal img,\n.reveal video,\n.reveal iframe {\n max-width: 95%;\n max-height: 95%; }\n\n.reveal strong,\n.reveal b {\n font-weight: bold; }\n\n.reveal em {\n font-style: italic; }\n\n.reveal ol,\n.reveal dl,\n.reveal ul {\n display: inline-block;\n text-align: left;\n margin: 0 0 0 1em; }\n\n.reveal ol {\n list-style-type: decimal; }\n\n.reveal ul {\n list-style-type: disc; }\n\n.reveal ul ul {\n list-style-type: square; }\n\n.reveal ul ul ul {\n list-style-type: circle; }\n\n.reveal ul ul,\n.reveal ul ol,\n.reveal ol ol,\n.reveal ol ul {\n display: block;\n margin-left: 40px; }\n\n.reveal dt {\n font-weight: bold; }\n\n.reveal dd {\n margin-left: 40px; }\n\n.reveal q,\n.reveal blockquote {\n quotes: none; }\n\n.reveal blockquote {\n display: block;\n position: relative;\n width: 70%;\n margin: 20px auto;\n padding: 5px;\n font-style: italic;\n background: rgba(255, 255, 255, 0.05);\n box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }\n\n.reveal blockquote p:first-child,\n.reveal blockquote p:last-child {\n display: inline-block; }\n\n.reveal q {\n font-style: italic; }\n\n.reveal pre {\n display: block;\n position: relative;\n width: 90%;\n margin: 20px auto;\n text-align: left;\n font-size: 0.55em;\n font-family: monospace;\n line-height: 1.2em;\n word-wrap: break-word;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); }\n\n.reveal code {\n font-family: monospace; }\n\n.reveal pre code {\n display: block;\n padding: 5px;\n overflow: auto;\n max-height: 400px;\n word-wrap: normal; }\n\n.reveal table {\n margin: auto;\n border-collapse: collapse;\n border-spacing: 0; }\n\n.reveal table th {\n font-weight: bold; }\n\n.reveal table th,\n.reveal table td {\n text-align: left;\n padding: 0.2em 0.5em 0.2em 0.5em;\n border-bottom: 1px solid; }\n\n.reveal table th[align=\"center\"],\n.reveal table td[align=\"center\"] {\n text-align: center; }\n\n.reveal table th[align=\"right\"],\n.reveal table td[align=\"right\"] {\n text-align: right; }\n\n.reveal table tbody tr:last-child th,\n.reveal table tbody tr:last-child td {\n border-bottom: none; }\n\n.reveal sup {\n vertical-align: super; }\n\n.reveal sub {\n vertical-align: sub; }\n\n.reveal small {\n display: inline-block;\n font-size: 0.6em;\n line-height: 1.2em;\n vertical-align: top; }\n\n.reveal small * {\n vertical-align: top; }\n\n/*********************************************\n * LINKS\n *********************************************/\n.reveal a {\n color: #42affa;\n text-decoration: none;\n -webkit-transition: color .15s ease;\n -moz-transition: color .15s ease;\n transition: color .15s ease; }\n\n.reveal a:hover {\n color: #8dcffc;\n text-shadow: none;\n border: none; }\n\n.reveal .roll span:after {\n color: #fff;\n background: #068de9; }\n\n/*********************************************\n * IMAGES\n *********************************************/\n.reveal section img {\n margin: 15px 0px;\n background: rgba(255, 255, 255, 0.12);\n border: 4px solid #fff;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }\n\n.reveal section img.plain {\n border: 0;\n box-shadow: none; }\n\n.reveal a img {\n -webkit-transition: all .15s linear;\n -moz-transition: all .15s linear;\n transition: all .15s linear; }\n\n.reveal a:hover img {\n background: rgba(255, 255, 255, 0.2);\n border-color: #42affa;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }\n\n/*********************************************\n * NAVIGATION CONTROLS\n *********************************************/\n.reveal .controls .navigate-left,\n.reveal .controls .navigate-left.enabled {\n border-right-color: #42affa; }\n\n.reveal .controls .navigate-right,\n.reveal .controls .navigate-right.enabled {\n border-left-color: #42affa; }\n\n.reveal .controls .navigate-up,\n.reveal .controls .navigate-up.enabled {\n border-bottom-color: #42affa; }\n\n.reveal .controls .navigate-down,\n.reveal .controls .navigate-down.enabled {\n border-top-color: #42affa; }\n\n.reveal .controls .navigate-left.enabled:hover {\n border-right-color: #8dcffc; }\n\n.reveal .controls .navigate-right.enabled:hover {\n border-left-color: #8dcffc; }\n\n.reveal .controls .navigate-up.enabled:hover {\n border-bottom-color: #8dcffc; }\n\n.reveal .controls .navigate-down.enabled:hover {\n border-top-color: #8dcffc; }\n\n/*********************************************\n * PROGRESS BAR\n *********************************************/\n.reveal .progress {\n background: rgba(0, 0, 0, 0.2); }\n\n.reveal .progress span {\n background: #42affa;\n -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }\n",
"slug": "reveal-js/css/theme/black.css",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/black.css",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/blood.css": {
"text": "/**\n * Blood theme for reveal.js\n * Author: Walther http://github.com/Walther\n *\n * Designed to be used with highlight.js theme\n * \"monokai_sublime.css\" available from\n * https://github.com/isagalaev/highlight.js/\n *\n * For other themes, change $codeBackground accordingly.\n *\n */\n@import url(https://fonts.googleapis.com/css?family=Ubuntu:300,700,300italic,700italic);\n/*********************************************\n * GLOBAL STYLES\n *********************************************/\nbody {\n background: #222;\n background-color: #222; }\n\n.reveal {\n font-family: Ubuntu, \"sans-serif\";\n font-size: 40px;\n font-weight: normal;\n color: #eee; }\n\n::selection {\n color: #fff;\n background: #a23;\n text-shadow: none; }\n\n::-moz-selection {\n color: #fff;\n background: #a23;\n text-shadow: none; }\n\n.reveal .slides > section,\n.reveal .slides > section > section {\n line-height: 1.3;\n font-weight: inherit; }\n\n/*********************************************\n * HEADERS\n *********************************************/\n.reveal h1,\n.reveal h2,\n.reveal h3,\n.reveal h4,\n.reveal h5,\n.reveal h6 {\n margin: 0 0 20px 0;\n color: #eee;\n font-family: Ubuntu, \"sans-serif\";\n font-weight: normal;\n line-height: 1.2;\n letter-spacing: normal;\n text-transform: uppercase;\n text-shadow: 2px 2px 2px #222;\n word-wrap: break-word; }\n\n.reveal h1 {\n font-size: 3.77em; }\n\n.reveal h2 {\n font-size: 2.11em; }\n\n.reveal h3 {\n font-size: 1.55em; }\n\n.reveal h4 {\n font-size: 1em; }\n\n.reveal h1 {\n text-shadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15); }\n\n/*********************************************\n * OTHER\n *********************************************/\n.reveal p {\n margin: 20px 0;\n line-height: 1.3; }\n\n/* Ensure certain elements are never larger than the slide itself */\n.reveal img,\n.reveal video,\n.reveal iframe {\n max-width: 95%;\n max-height: 95%; }\n\n.reveal strong,\n.reveal b {\n font-weight: bold; }\n\n.reveal em {\n font-style: italic; }\n\n.reveal ol,\n.reveal dl,\n.reveal ul {\n display: inline-block;\n text-align: left;\n margin: 0 0 0 1em; }\n\n.reveal ol {\n list-style-type: decimal; }\n\n.reveal ul {\n list-style-type: disc; }\n\n.reveal ul ul {\n list-style-type: square; }\n\n.reveal ul ul ul {\n list-style-type: circle; }\n\n.reveal ul ul,\n.reveal ul ol,\n.reveal ol ol,\n.reveal ol ul {\n display: block;\n margin-left: 40px; }\n\n.reveal dt {\n font-weight: bold; }\n\n.reveal dd {\n margin-left: 40px; }\n\n.reveal q,\n.reveal blockquote {\n quotes: none; }\n\n.reveal blockquote {\n display: block;\n position: relative;\n width: 70%;\n margin: 20px auto;\n padding: 5px;\n font-style: italic;\n background: rgba(255, 255, 255, 0.05);\n box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }\n\n.reveal blockquote p:first-child,\n.reveal blockquote p:last-child {\n display: inline-block; }\n\n.reveal q {\n font-style: italic; }\n\n.reveal pre {\n display: block;\n position: relative;\n width: 90%;\n margin: 20px auto;\n text-align: left;\n font-size: 0.55em;\n font-family: monospace;\n line-height: 1.2em;\n word-wrap: break-word;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); }\n\n.reveal code {\n font-family: monospace; }\n\n.reveal pre code {\n display: block;\n padding: 5px;\n overflow: auto;\n max-height: 400px;\n word-wrap: normal; }\n\n.reveal table {\n margin: auto;\n border-collapse: collapse;\n border-spacing: 0; }\n\n.reveal table th {\n font-weight: bold; }\n\n.reveal table th,\n.reveal table td {\n text-align: left;\n padding: 0.2em 0.5em 0.2em 0.5em;\n border-bottom: 1px solid; }\n\n.reveal table th[align=\"center\"],\n.reveal table td[align=\"center\"] {\n text-align: center; }\n\n.reveal table th[align=\"right\"],\n.reveal table td[align=\"right\"] {\n text-align: right; }\n\n.reveal table tbody tr:last-child th,\n.reveal table tbody tr:last-child td {\n border-bottom: none; }\n\n.reveal sup {\n vertical-align: super; }\n\n.reveal sub {\n vertical-align: sub; }\n\n.reveal small {\n display: inline-block;\n font-size: 0.6em;\n line-height: 1.2em;\n vertical-align: top; }\n\n.reveal small * {\n vertical-align: top; }\n\n/*********************************************\n * LINKS\n *********************************************/\n.reveal a {\n color: #a23;\n text-decoration: none;\n -webkit-transition: color .15s ease;\n -moz-transition: color .15s ease;\n transition: color .15s ease; }\n\n.reveal a:hover {\n color: #dd5566;\n text-shadow: none;\n border: none; }\n\n.reveal .roll span:after {\n color: #fff;\n background: #6a1520; }\n\n/*********************************************\n * IMAGES\n *********************************************/\n.reveal section img {\n margin: 15px 0px;\n background: rgba(255, 255, 255, 0.12);\n border: 4px solid #eee;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }\n\n.reveal section img.plain {\n border: 0;\n box-shadow: none; }\n\n.reveal a img {\n -webkit-transition: all .15s linear;\n -moz-transition: all .15s linear;\n transition: all .15s linear; }\n\n.reveal a:hover img {\n background: rgba(255, 255, 255, 0.2);\n border-color: #a23;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }\n\n/*********************************************\n * NAVIGATION CONTROLS\n *********************************************/\n.reveal .controls .navigate-left,\n.reveal .controls .navigate-left.enabled {\n border-right-color: #a23; }\n\n.reveal .controls .navigate-right,\n.reveal .controls .navigate-right.enabled {\n border-left-color: #a23; }\n\n.reveal .controls .navigate-up,\n.reveal .controls .navigate-up.enabled {\n border-bottom-color: #a23; }\n\n.reveal .controls .navigate-down,\n.reveal .controls .navigate-down.enabled {\n border-top-color: #a23; }\n\n.reveal .controls .navigate-left.enabled:hover {\n border-right-color: #dd5566; }\n\n.reveal .controls .navigate-right.enabled:hover {\n border-left-color: #dd5566; }\n\n.reveal .controls .navigate-up.enabled:hover {\n border-bottom-color: #dd5566; }\n\n.reveal .controls .navigate-down.enabled:hover {\n border-top-color: #dd5566; }\n\n/*********************************************\n * PROGRESS BAR\n *********************************************/\n.reveal .progress {\n background: rgba(0, 0, 0, 0.2); }\n\n.reveal .progress span {\n background: #a23;\n -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }\n\n.reveal p {\n font-weight: 300;\n text-shadow: 1px 1px #222; }\n\n.reveal h1,\n.reveal h2,\n.reveal h3,\n.reveal h4,\n.reveal h5,\n.reveal h6 {\n font-weight: 700; }\n\n.reveal p code {\n background-color: #23241f;\n display: inline-block;\n border-radius: 7px; }\n\n.reveal small code {\n vertical-align: baseline; }\n",
"slug": "reveal-js/css/theme/blood.css",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/blood.css",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/league.css": {
"text": "/**\n * League theme for reveal.js.\n *\n * This was the default theme pre-3.0.0.\n *\n * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se\n */\n@import url(../../lib/font/league-gothic/league-gothic.css);\n@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);\n/*********************************************\n * GLOBAL STYLES\n *********************************************/\nbody {\n background: #1c1e20;\n background: -moz-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);\n background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #555a5f), color-stop(100%, #1c1e20));\n background: -webkit-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);\n background: -o-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);\n background: -ms-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);\n background: radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);\n background-color: #2b2b2b; }\n\n.reveal {\n font-family: \"Lato\", sans-serif;\n font-size: 40px;\n font-weight: normal;\n color: #eee; }\n\n::selection {\n color: #fff;\n background: #FF5E99;\n text-shadow: none; }\n\n::-moz-selection {\n color: #fff;\n background: #FF5E99;\n text-shadow: none; }\n\n.reveal .slides > section,\n.reveal .slides > section > section {\n line-height: 1.3;\n font-weight: inherit; }\n\n/*********************************************\n * HEADERS\n *********************************************/\n.reveal h1,\n.reveal h2,\n.reveal h3,\n.reveal h4,\n.reveal h5,\n.reveal h6 {\n margin: 0 0 20px 0;\n color: #eee;\n font-family: \"League Gothic\", Impact, sans-serif;\n font-weight: normal;\n line-height: 1.2;\n letter-spacing: normal;\n text-transform: uppercase;\n text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2);\n word-wrap: break-word; }\n\n.reveal h1 {\n font-size: 3.77em; }\n\n.reveal h2 {\n font-size: 2.11em; }\n\n.reveal h3 {\n font-size: 1.55em; }\n\n.reveal h4 {\n font-size: 1em; }\n\n.reveal h1 {\n text-shadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15); }\n\n/*********************************************\n * OTHER\n *********************************************/\n.reveal p {\n margin: 20px 0;\n line-height: 1.3; }\n\n/* Ensure certain elements are never larger than the slide itself */\n.reveal img,\n.reveal video,\n.reveal iframe {\n max-width: 95%;\n max-height: 95%; }\n\n.reveal strong,\n.reveal b {\n font-weight: bold; }\n\n.reveal em {\n font-style: italic; }\n\n.reveal ol,\n.reveal dl,\n.reveal ul {\n display: inline-block;\n text-align: left;\n margin: 0 0 0 1em; }\n\n.reveal ol {\n list-style-type: decimal; }\n\n.reveal ul {\n list-style-type: disc; }\n\n.reveal ul ul {\n list-style-type: square; }\n\n.reveal ul ul ul {\n list-style-type: circle; }\n\n.reveal ul ul,\n.reveal ul ol,\n.reveal ol ol,\n.reveal ol ul {\n display: block;\n margin-left: 40px; }\n\n.reveal dt {\n font-weight: bold; }\n\n.reveal dd {\n margin-left: 40px; }\n\n.reveal q,\n.reveal blockquote {\n quotes: none; }\n\n.reveal blockquote {\n display: block;\n position: relative;\n width: 70%;\n margin: 20px auto;\n padding: 5px;\n font-style: italic;\n background: rgba(255, 255, 255, 0.05);\n box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }\n\n.reveal blockquote p:first-child,\n.reveal blockquote p:last-child {\n display: inline-block; }\n\n.reveal q {\n font-style: italic; }\n\n.reveal pre {\n display: block;\n position: relative;\n width: 90%;\n margin: 20px auto;\n text-align: left;\n font-size: 0.55em;\n font-family: monospace;\n line-height: 1.2em;\n word-wrap: break-word;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); }\n\n.reveal code {\n font-family: monospace; }\n\n.reveal pre code {\n display: block;\n padding: 5px;\n overflow: auto;\n max-height: 400px;\n word-wrap: normal; }\n\n.reveal table {\n margin: auto;\n border-collapse: collapse;\n border-spacing: 0; }\n\n.reveal table th {\n font-weight: bold; }\n\n.reveal table th,\n.reveal table td {\n text-align: left;\n padding: 0.2em 0.5em 0.2em 0.5em;\n border-bottom: 1px solid; }\n\n.reveal table th[align=\"center\"],\n.reveal table td[align=\"center\"] {\n text-align: center; }\n\n.reveal table th[align=\"right\"],\n.reveal table td[align=\"right\"] {\n text-align: right; }\n\n.reveal table tbody tr:last-child th,\n.reveal table tbody tr:last-child td {\n border-bottom: none; }\n\n.reveal sup {\n vertical-align: super; }\n\n.reveal sub {\n vertical-align: sub; }\n\n.reveal small {\n display: inline-block;\n font-size: 0.6em;\n line-height: 1.2em;\n vertical-align: top; }\n\n.reveal small * {\n vertical-align: top; }\n\n/*********************************************\n * LINKS\n *********************************************/\n.reveal a {\n color: #13DAEC;\n text-decoration: none;\n -webkit-transition: color .15s ease;\n -moz-transition: color .15s ease;\n transition: color .15s ease; }\n\n.reveal a:hover {\n color: #71e9f4;\n text-shadow: none;\n border: none; }\n\n.reveal .roll span:after {\n color: #fff;\n background: #0d99a5; }\n\n/*********************************************\n * IMAGES\n *********************************************/\n.reveal section img {\n margin: 15px 0px;\n background: rgba(255, 255, 255, 0.12);\n border: 4px solid #eee;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }\n\n.reveal section img.plain {\n border: 0;\n box-shadow: none; }\n\n.reveal a img {\n -webkit-transition: all .15s linear;\n -moz-transition: all .15s linear;\n transition: all .15s linear; }\n\n.reveal a:hover img {\n background: rgba(255, 255, 255, 0.2);\n border-color: #13DAEC;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }\n\n/*********************************************\n * NAVIGATION CONTROLS\n *********************************************/\n.reveal .controls .navigate-left,\n.reveal .controls .navigate-left.enabled {\n border-right-color: #13DAEC; }\n\n.reveal .controls .navigate-right,\n.reveal .controls .navigate-right.enabled {\n border-left-color: #13DAEC; }\n\n.reveal .controls .navigate-up,\n.reveal .controls .navigate-up.enabled {\n border-bottom-color: #13DAEC; }\n\n.reveal .controls .navigate-down,\n.reveal .controls .navigate-down.enabled {\n border-top-color: #13DAEC; }\n\n.reveal .controls .navigate-left.enabled:hover {\n border-right-color: #71e9f4; }\n\n.reveal .controls .navigate-right.enabled:hover {\n border-left-color: #71e9f4; }\n\n.reveal .controls .navigate-up.enabled:hover {\n border-bottom-color: #71e9f4; }\n\n.reveal .controls .navigate-down.enabled:hover {\n border-top-color: #71e9f4; }\n\n/*********************************************\n * PROGRESS BAR\n *********************************************/\n.reveal .progress {\n background: rgba(0, 0, 0, 0.2); }\n\n.reveal .progress span {\n background: #13DAEC;\n -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }\n",
"slug": "reveal-js/css/theme/league.css",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/league.css",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/moon.css": {
"text": "/**\n * Solarized Dark theme for reveal.js.\n * Author: Achim Staebler\n */\n@import url(../../lib/font/league-gothic/league-gothic.css);\n@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);\n/**\n * Solarized colors by Ethan Schoonover\n */\nhtml * {\n color-profile: sRGB;\n rendering-intent: auto; }\n\n/*********************************************\n * GLOBAL STYLES\n *********************************************/\nbody {\n background: #002b36;\n background-color: #002b36; }\n\n.reveal {\n font-family: \"Lato\", sans-serif;\n font-size: 40px;\n font-weight: normal;\n color: #93a1a1; }\n\n::selection {\n color: #fff;\n background: #d33682;\n text-shadow: none; }\n\n::-moz-selection {\n color: #fff;\n background: #d33682;\n text-shadow: none; }\n\n.reveal .slides > section,\n.reveal .slides > section > section {\n line-height: 1.3;\n font-weight: inherit; }\n\n/*********************************************\n * HEADERS\n *********************************************/\n.reveal h1,\n.reveal h2,\n.reveal h3,\n.reveal h4,\n.reveal h5,\n.reveal h6 {\n margin: 0 0 20px 0;\n color: #eee8d5;\n font-family: \"League Gothic\", Impact, sans-serif;\n font-weight: normal;\n line-height: 1.2;\n letter-spacing: normal;\n text-transform: uppercase;\n text-shadow: none;\n word-wrap: break-word; }\n\n.reveal h1 {\n font-size: 3.77em; }\n\n.reveal h2 {\n font-size: 2.11em; }\n\n.reveal h3 {\n font-size: 1.55em; }\n\n.reveal h4 {\n font-size: 1em; }\n\n.reveal h1 {\n text-shadow: none; }\n\n/*********************************************\n * OTHER\n *********************************************/\n.reveal p {\n margin: 20px 0;\n line-height: 1.3; }\n\n/* Ensure certain elements are never larger than the slide itself */\n.reveal img,\n.reveal video,\n.reveal iframe {\n max-width: 95%;\n max-height: 95%; }\n\n.reveal strong,\n.reveal b {\n font-weight: bold; }\n\n.reveal em {\n font-style: italic; }\n\n.reveal ol,\n.reveal dl,\n.reveal ul {\n display: inline-block;\n text-align: left;\n margin: 0 0 0 1em; }\n\n.reveal ol {\n list-style-type: decimal; }\n\n.reveal ul {\n list-style-type: disc; }\n\n.reveal ul ul {\n list-style-type: square; }\n\n.reveal ul ul ul {\n list-style-type: circle; }\n\n.reveal ul ul,\n.reveal ul ol,\n.reveal ol ol,\n.reveal ol ul {\n display: block;\n margin-left: 40px; }\n\n.reveal dt {\n font-weight: bold; }\n\n.reveal dd {\n margin-left: 40px; }\n\n.reveal q,\n.reveal blockquote {\n quotes: none; }\n\n.reveal blockquote {\n display: block;\n position: relative;\n width: 70%;\n margin: 20px auto;\n padding: 5px;\n font-style: italic;\n background: rgba(255, 255, 255, 0.05);\n box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }\n\n.reveal blockquote p:first-child,\n.reveal blockquote p:last-child {\n display: inline-block; }\n\n.reveal q {\n font-style: italic; }\n\n.reveal pre {\n display: block;\n position: relative;\n width: 90%;\n margin: 20px auto;\n text-align: left;\n font-size: 0.55em;\n font-family: monospace;\n line-height: 1.2em;\n word-wrap: break-word;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); }\n\n.reveal code {\n font-family: monospace; }\n\n.reveal pre code {\n display: block;\n padding: 5px;\n overflow: auto;\n max-height: 400px;\n word-wrap: normal; }\n\n.reveal table {\n margin: auto;\n border-collapse: collapse;\n border-spacing: 0; }\n\n.reveal table th {\n font-weight: bold; }\n\n.reveal table th,\n.reveal table td {\n text-align: left;\n padding: 0.2em 0.5em 0.2em 0.5em;\n border-bottom: 1px solid; }\n\n.reveal table th[align=\"center\"],\n.reveal table td[align=\"center\"] {\n text-align: center; }\n\n.reveal table th[align=\"right\"],\n.reveal table td[align=\"right\"] {\n text-align: right; }\n\n.reveal table tbody tr:last-child th,\n.reveal table tbody tr:last-child td {\n border-bottom: none; }\n\n.reveal sup {\n vertical-align: super; }\n\n.reveal sub {\n vertical-align: sub; }\n\n.reveal small {\n display: inline-block;\n font-size: 0.6em;\n line-height: 1.2em;\n vertical-align: top; }\n\n.reveal small * {\n vertical-align: top; }\n\n/*********************************************\n * LINKS\n *********************************************/\n.reveal a {\n color: #268bd2;\n text-decoration: none;\n -webkit-transition: color .15s ease;\n -moz-transition: color .15s ease;\n transition: color .15s ease; }\n\n.reveal a:hover {\n color: #78b9e6;\n text-shadow: none;\n border: none; }\n\n.reveal .roll span:after {\n color: #fff;\n background: #1a6091; }\n\n/*********************************************\n * IMAGES\n *********************************************/\n.reveal section img {\n margin: 15px 0px;\n background: rgba(255, 255, 255, 0.12);\n border: 4px solid #93a1a1;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }\n\n.reveal section img.plain {\n border: 0;\n box-shadow: none; }\n\n.reveal a img {\n -webkit-transition: all .15s linear;\n -moz-transition: all .15s linear;\n transition: all .15s linear; }\n\n.reveal a:hover img {\n background: rgba(255, 255, 255, 0.2);\n border-color: #268bd2;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }\n\n/*********************************************\n * NAVIGATION CONTROLS\n *********************************************/\n.reveal .controls .navigate-left,\n.reveal .controls .navigate-left.enabled {\n border-right-color: #268bd2; }\n\n.reveal .controls .navigate-right,\n.reveal .controls .navigate-right.enabled {\n border-left-color: #268bd2; }\n\n.reveal .controls .navigate-up,\n.reveal .controls .navigate-up.enabled {\n border-bottom-color: #268bd2; }\n\n.reveal .controls .navigate-down,\n.reveal .controls .navigate-down.enabled {\n border-top-color: #268bd2; }\n\n.reveal .controls .navigate-left.enabled:hover {\n border-right-color: #78b9e6; }\n\n.reveal .controls .navigate-right.enabled:hover {\n border-left-color: #78b9e6; }\n\n.reveal .controls .navigate-up.enabled:hover {\n border-bottom-color: #78b9e6; }\n\n.reveal .controls .navigate-down.enabled:hover {\n border-top-color: #78b9e6; }\n\n/*********************************************\n * PROGRESS BAR\n *********************************************/\n.reveal .progress {\n background: rgba(0, 0, 0, 0.2); }\n\n.reveal .progress span {\n background: #268bd2;\n -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }\n",
"slug": "reveal-js/css/theme/moon.css",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/moon.css",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/night.css": {
"text": "/**\n * Black theme for reveal.js.\n *\n * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se\n */\n@import url(https://fonts.googleapis.com/css?family=Montserrat:700);\n@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic,700italic);\n/*********************************************\n * GLOBAL STYLES\n *********************************************/\nbody {\n background: #111;\n background-color: #111; }\n\n.reveal {\n font-family: \"Open Sans\", sans-serif;\n font-size: 40px;\n font-weight: normal;\n color: #eee; }\n\n::selection {\n color: #fff;\n background: #e7ad52;\n text-shadow: none; }\n\n::-moz-selection {\n color: #fff;\n background: #e7ad52;\n text-shadow: none; }\n\n.reveal .slides > section,\n.reveal .slides > section > section {\n line-height: 1.3;\n font-weight: inherit; }\n\n/*********************************************\n * HEADERS\n *********************************************/\n.reveal h1,\n.reveal h2,\n.reveal h3,\n.reveal h4,\n.reveal h5,\n.reveal h6 {\n margin: 0 0 20px 0;\n color: #eee;\n font-family: \"Montserrat\", Impact, sans-serif;\n font-weight: normal;\n line-height: 1.2;\n letter-spacing: -0.03em;\n text-transform: none;\n text-shadow: none;\n word-wrap: break-word; }\n\n.reveal h1 {\n font-size: 3.77em; }\n\n.reveal h2 {\n font-size: 2.11em; }\n\n.reveal h3 {\n font-size: 1.55em; }\n\n.reveal h4 {\n font-size: 1em; }\n\n.reveal h1 {\n text-shadow: none; }\n\n/*********************************************\n * OTHER\n *********************************************/\n.reveal p {\n margin: 20px 0;\n line-height: 1.3; }\n\n/* Ensure certain elements are never larger than the slide itself */\n.reveal img,\n.reveal video,\n.reveal iframe {\n max-width: 95%;\n max-height: 95%; }\n\n.reveal strong,\n.reveal b {\n font-weight: bold; }\n\n.reveal em {\n font-style: italic; }\n\n.reveal ol,\n.reveal dl,\n.reveal ul {\n display: inline-block;\n text-align: left;\n margin: 0 0 0 1em; }\n\n.reveal ol {\n list-style-type: decimal; }\n\n.reveal ul {\n list-style-type: disc; }\n\n.reveal ul ul {\n list-style-type: square; }\n\n.reveal ul ul ul {\n list-style-type: circle; }\n\n.reveal ul ul,\n.reveal ul ol,\n.reveal ol ol,\n.reveal ol ul {\n display: block;\n margin-left: 40px; }\n\n.reveal dt {\n font-weight: bold; }\n\n.reveal dd {\n margin-left: 40px; }\n\n.reveal q,\n.reveal blockquote {\n quotes: none; }\n\n.reveal blockquote {\n display: block;\n position: relative;\n width: 70%;\n margin: 20px auto;\n padding: 5px;\n font-style: italic;\n background: rgba(255, 255, 255, 0.05);\n box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }\n\n.reveal blockquote p:first-child,\n.reveal blockquote p:last-child {\n display: inline-block; }\n\n.reveal q {\n font-style: italic; }\n\n.reveal pre {\n display: block;\n position: relative;\n width: 90%;\n margin: 20px auto;\n text-align: left;\n font-size: 0.55em;\n font-family: monospace;\n line-height: 1.2em;\n word-wrap: break-word;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); }\n\n.reveal code {\n font-family: monospace; }\n\n.reveal pre code {\n display: block;\n padding: 5px;\n overflow: auto;\n max-height: 400px;\n word-wrap: normal; }\n\n.reveal table {\n margin: auto;\n border-collapse: collapse;\n border-spacing: 0; }\n\n.reveal table th {\n font-weight: bold; }\n\n.reveal table th,\n.reveal table td {\n text-align: left;\n padding: 0.2em 0.5em 0.2em 0.5em;\n border-bottom: 1px solid; }\n\n.reveal table th[align=\"center\"],\n.reveal table td[align=\"center\"] {\n text-align: center; }\n\n.reveal table th[align=\"right\"],\n.reveal table td[align=\"right\"] {\n text-align: right; }\n\n.reveal table tbody tr:last-child th,\n.reveal table tbody tr:last-child td {\n border-bottom: none; }\n\n.reveal sup {\n vertical-align: super; }\n\n.reveal sub {\n vertical-align: sub; }\n\n.reveal small {\n display: inline-block;\n font-size: 0.6em;\n line-height: 1.2em;\n vertical-align: top; }\n\n.reveal small * {\n vertical-align: top; }\n\n/*********************************************\n * LINKS\n *********************************************/\n.reveal a {\n color: #e7ad52;\n text-decoration: none;\n -webkit-transition: color .15s ease;\n -moz-transition: color .15s ease;\n transition: color .15s ease; }\n\n.reveal a:hover {\n color: #f3d7ac;\n text-shadow: none;\n border: none; }\n\n.reveal .roll span:after {\n color: #fff;\n background: #d08a1d; }\n\n/*********************************************\n * IMAGES\n *********************************************/\n.reveal section img {\n margin: 15px 0px;\n background: rgba(255, 255, 255, 0.12);\n border: 4px solid #eee;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }\n\n.reveal section img.plain {\n border: 0;\n box-shadow: none; }\n\n.reveal a img {\n -webkit-transition: all .15s linear;\n -moz-transition: all .15s linear;\n transition: all .15s linear; }\n\n.reveal a:hover img {\n background: rgba(255, 255, 255, 0.2);\n border-color: #e7ad52;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }\n\n/*********************************************\n * NAVIGATION CONTROLS\n *********************************************/\n.reveal .controls .navigate-left,\n.reveal .controls .navigate-left.enabled {\n border-right-color: #e7ad52; }\n\n.reveal .controls .navigate-right,\n.reveal .controls .navigate-right.enabled {\n border-left-color: #e7ad52; }\n\n.reveal .controls .navigate-up,\n.reveal .controls .navigate-up.enabled {\n border-bottom-color: #e7ad52; }\n\n.reveal .controls .navigate-down,\n.reveal .controls .navigate-down.enabled {\n border-top-color: #e7ad52; }\n\n.reveal .controls .navigate-left.enabled:hover {\n border-right-color: #f3d7ac; }\n\n.reveal .controls .navigate-right.enabled:hover {\n border-left-color: #f3d7ac; }\n\n.reveal .controls .navigate-up.enabled:hover {\n border-bottom-color: #f3d7ac; }\n\n.reveal .controls .navigate-down.enabled:hover {\n border-top-color: #f3d7ac; }\n\n/*********************************************\n * PROGRESS BAR\n *********************************************/\n.reveal .progress {\n background: rgba(0, 0, 0, 0.2); }\n\n.reveal .progress span {\n background: #e7ad52;\n -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }\n",
"slug": "reveal-js/css/theme/night.css",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/night.css",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/serif.css": {
"text": "/**\n * A simple theme for reveal.js presentations, similar\n * to the default theme. The accent color is brown.\n *\n * This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed.\n */\n.reveal a {\n line-height: 1.3em; }\n\n/*********************************************\n * GLOBAL STYLES\n *********************************************/\nbody {\n background: #F0F1EB;\n background-color: #F0F1EB; }\n\n.reveal {\n font-family: \"Palatino Linotype\", \"Book Antiqua\", Palatino, FreeSerif, serif;\n font-size: 40px;\n font-weight: normal;\n color: #000; }\n\n::selection {\n color: #fff;\n background: #26351C;\n text-shadow: none; }\n\n::-moz-selection {\n color: #fff;\n background: #26351C;\n text-shadow: none; }\n\n.reveal .slides > section,\n.reveal .slides > section > section {\n line-height: 1.3;\n font-weight: inherit; }\n\n/*********************************************\n * HEADERS\n *********************************************/\n.reveal h1,\n.reveal h2,\n.reveal h3,\n.reveal h4,\n.reveal h5,\n.reveal h6 {\n margin: 0 0 20px 0;\n color: #383D3D;\n font-family: \"Palatino Linotype\", \"Book Antiqua\", Palatino, FreeSerif, serif;\n font-weight: normal;\n line-height: 1.2;\n letter-spacing: normal;\n text-transform: none;\n text-shadow: none;\n word-wrap: break-word; }\n\n.reveal h1 {\n font-size: 3.77em; }\n\n.reveal h2 {\n font-size: 2.11em; }\n\n.reveal h3 {\n font-size: 1.55em; }\n\n.reveal h4 {\n font-size: 1em; }\n\n.reveal h1 {\n text-shadow: none; }\n\n/*********************************************\n * OTHER\n *********************************************/\n.reveal p {\n margin: 20px 0;\n line-height: 1.3; }\n\n/* Ensure certain elements are never larger than the slide itself */\n.reveal img,\n.reveal video,\n.reveal iframe {\n max-width: 95%;\n max-height: 95%; }\n\n.reveal strong,\n.reveal b {\n font-weight: bold; }\n\n.reveal em {\n font-style: italic; }\n\n.reveal ol,\n.reveal dl,\n.reveal ul {\n display: inline-block;\n text-align: left;\n margin: 0 0 0 1em; }\n\n.reveal ol {\n list-style-type: decimal; }\n\n.reveal ul {\n list-style-type: disc; }\n\n.reveal ul ul {\n list-style-type: square; }\n\n.reveal ul ul ul {\n list-style-type: circle; }\n\n.reveal ul ul,\n.reveal ul ol,\n.reveal ol ol,\n.reveal ol ul {\n display: block;\n margin-left: 40px; }\n\n.reveal dt {\n font-weight: bold; }\n\n.reveal dd {\n margin-left: 40px; }\n\n.reveal q,\n.reveal blockquote {\n quotes: none; }\n\n.reveal blockquote {\n display: block;\n position: relative;\n width: 70%;\n margin: 20px auto;\n padding: 5px;\n font-style: italic;\n background: rgba(255, 255, 255, 0.05);\n box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }\n\n.reveal blockquote p:first-child,\n.reveal blockquote p:last-child {\n display: inline-block; }\n\n.reveal q {\n font-style: italic; }\n\n.reveal pre {\n display: block;\n position: relative;\n width: 90%;\n margin: 20px auto;\n text-align: left;\n font-size: 0.55em;\n font-family: monospace;\n line-height: 1.2em;\n word-wrap: break-word;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); }\n\n.reveal code {\n font-family: monospace; }\n\n.reveal pre code {\n display: block;\n padding: 5px;\n overflow: auto;\n max-height: 400px;\n word-wrap: normal; }\n\n.reveal table {\n margin: auto;\n border-collapse: collapse;\n border-spacing: 0; }\n\n.reveal table th {\n font-weight: bold; }\n\n.reveal table th,\n.reveal table td {\n text-align: left;\n padding: 0.2em 0.5em 0.2em 0.5em;\n border-bottom: 1px solid; }\n\n.reveal table th[align=\"center\"],\n.reveal table td[align=\"center\"] {\n text-align: center; }\n\n.reveal table th[align=\"right\"],\n.reveal table td[align=\"right\"] {\n text-align: right; }\n\n.reveal table tbody tr:last-child th,\n.reveal table tbody tr:last-child td {\n border-bottom: none; }\n\n.reveal sup {\n vertical-align: super; }\n\n.reveal sub {\n vertical-align: sub; }\n\n.reveal small {\n display: inline-block;\n font-size: 0.6em;\n line-height: 1.2em;\n vertical-align: top; }\n\n.reveal small * {\n vertical-align: top; }\n\n/*********************************************\n * LINKS\n *********************************************/\n.reveal a {\n color: #51483D;\n text-decoration: none;\n -webkit-transition: color .15s ease;\n -moz-transition: color .15s ease;\n transition: color .15s ease; }\n\n.reveal a:hover {\n color: #8b7c69;\n text-shadow: none;\n border: none; }\n\n.reveal .roll span:after {\n color: #fff;\n background: #25211c; }\n\n/*********************************************\n * IMAGES\n *********************************************/\n.reveal section img {\n margin: 15px 0px;\n background: rgba(255, 255, 255, 0.12);\n border: 4px solid #000;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }\n\n.reveal section img.plain {\n border: 0;\n box-shadow: none; }\n\n.reveal a img {\n -webkit-transition: all .15s linear;\n -moz-transition: all .15s linear;\n transition: all .15s linear; }\n\n.reveal a:hover img {\n background: rgba(255, 255, 255, 0.2);\n border-color: #51483D;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }\n\n/*********************************************\n * NAVIGATION CONTROLS\n *********************************************/\n.reveal .controls .navigate-left,\n.reveal .controls .navigate-left.enabled {\n border-right-color: #51483D; }\n\n.reveal .controls .navigate-right,\n.reveal .controls .navigate-right.enabled {\n border-left-color: #51483D; }\n\n.reveal .controls .navigate-up,\n.reveal .controls .navigate-up.enabled {\n border-bottom-color: #51483D; }\n\n.reveal .controls .navigate-down,\n.reveal .controls .navigate-down.enabled {\n border-top-color: #51483D; }\n\n.reveal .controls .navigate-left.enabled:hover {\n border-right-color: #8b7c69; }\n\n.reveal .controls .navigate-right.enabled:hover {\n border-left-color: #8b7c69; }\n\n.reveal .controls .navigate-up.enabled:hover {\n border-bottom-color: #8b7c69; }\n\n.reveal .controls .navigate-down.enabled:hover {\n border-top-color: #8b7c69; }\n\n/*********************************************\n * PROGRESS BAR\n *********************************************/\n.reveal .progress {\n background: rgba(0, 0, 0, 0.2); }\n\n.reveal .progress span {\n background: #51483D;\n -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }\n",
"slug": "reveal-js/css/theme/serif.css",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/serif.css",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/simple.css": {
"text": "/**\n * A simple theme for reveal.js presentations, similar\n * to the default theme. The accent color is darkblue.\n *\n * This theme is Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed.\n * reveal.js is Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se\n */\n@import url(https://fonts.googleapis.com/css?family=News+Cycle:400,700);\n@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);\nsection.has-dark-background, section.has-dark-background h1, section.has-dark-background h2, section.has-dark-background h3, section.has-dark-background h4, section.has-dark-background h5, section.has-dark-background h6 {\n color: #fff; }\n\n/*********************************************\n * GLOBAL STYLES\n *********************************************/\nbody {\n background: #fff;\n background-color: #fff; }\n\n.reveal {\n font-family: \"Lato\", sans-serif;\n font-size: 40px;\n font-weight: normal;\n color: #000; }\n\n::selection {\n color: #fff;\n background: rgba(0, 0, 0, 0.99);\n text-shadow: none; }\n\n::-moz-selection {\n color: #fff;\n background: rgba(0, 0, 0, 0.99);\n text-shadow: none; }\n\n.reveal .slides > section,\n.reveal .slides > section > section {\n line-height: 1.3;\n font-weight: inherit; }\n\n/*********************************************\n * HEADERS\n *********************************************/\n.reveal h1,\n.reveal h2,\n.reveal h3,\n.reveal h4,\n.reveal h5,\n.reveal h6 {\n margin: 0 0 20px 0;\n color: #000;\n font-family: \"News Cycle\", Impact, sans-serif;\n font-weight: normal;\n line-height: 1.2;\n letter-spacing: normal;\n text-transform: none;\n text-shadow: none;\n word-wrap: break-word; }\n\n.reveal h1 {\n font-size: 3.77em; }\n\n.reveal h2 {\n font-size: 2.11em; }\n\n.reveal h3 {\n font-size: 1.55em; }\n\n.reveal h4 {\n font-size: 1em; }\n\n.reveal h1 {\n text-shadow: none; }\n\n/*********************************************\n * OTHER\n *********************************************/\n.reveal p {\n margin: 20px 0;\n line-height: 1.3; }\n\n/* Ensure certain elements are never larger than the slide itself */\n.reveal img,\n.reveal video,\n.reveal iframe {\n max-width: 95%;\n max-height: 95%; }\n\n.reveal strong,\n.reveal b {\n font-weight: bold; }\n\n.reveal em {\n font-style: italic; }\n\n.reveal ol,\n.reveal dl,\n.reveal ul {\n display: inline-block;\n text-align: left;\n margin: 0 0 0 1em; }\n\n.reveal ol {\n list-style-type: decimal; }\n\n.reveal ul {\n list-style-type: disc; }\n\n.reveal ul ul {\n list-style-type: square; }\n\n.reveal ul ul ul {\n list-style-type: circle; }\n\n.reveal ul ul,\n.reveal ul ol,\n.reveal ol ol,\n.reveal ol ul {\n display: block;\n margin-left: 40px; }\n\n.reveal dt {\n font-weight: bold; }\n\n.reveal dd {\n margin-left: 40px; }\n\n.reveal q,\n.reveal blockquote {\n quotes: none; }\n\n.reveal blockquote {\n display: block;\n position: relative;\n width: 70%;\n margin: 20px auto;\n padding: 5px;\n font-style: italic;\n background: rgba(255, 255, 255, 0.05);\n box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }\n\n.reveal blockquote p:first-child,\n.reveal blockquote p:last-child {\n display: inline-block; }\n\n.reveal q {\n font-style: italic; }\n\n.reveal pre {\n display: block;\n position: relative;\n width: 90%;\n margin: 20px auto;\n text-align: left;\n font-size: 0.55em;\n font-family: monospace;\n line-height: 1.2em;\n word-wrap: break-word;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); }\n\n.reveal code {\n font-family: monospace; }\n\n.reveal pre code {\n display: block;\n padding: 5px;\n overflow: auto;\n max-height: 400px;\n word-wrap: normal; }\n\n.reveal table {\n margin: auto;\n border-collapse: collapse;\n border-spacing: 0; }\n\n.reveal table th {\n font-weight: bold; }\n\n.reveal table th,\n.reveal table td {\n text-align: left;\n padding: 0.2em 0.5em 0.2em 0.5em;\n border-bottom: 1px solid; }\n\n.reveal table th[align=\"center\"],\n.reveal table td[align=\"center\"] {\n text-align: center; }\n\n.reveal table th[align=\"right\"],\n.reveal table td[align=\"right\"] {\n text-align: right; }\n\n.reveal table tbody tr:last-child th,\n.reveal table tbody tr:last-child td {\n border-bottom: none; }\n\n.reveal sup {\n vertical-align: super; }\n\n.reveal sub {\n vertical-align: sub; }\n\n.reveal small {\n display: inline-block;\n font-size: 0.6em;\n line-height: 1.2em;\n vertical-align: top; }\n\n.reveal small * {\n vertical-align: top; }\n\n/*********************************************\n * LINKS\n *********************************************/\n.reveal a {\n color: #00008B;\n text-decoration: none;\n -webkit-transition: color .15s ease;\n -moz-transition: color .15s ease;\n transition: color .15s ease; }\n\n.reveal a:hover {\n color: #0000f1;\n text-shadow: none;\n border: none; }\n\n.reveal .roll span:after {\n color: #fff;\n background: #00003f; }\n\n/*********************************************\n * IMAGES\n *********************************************/\n.reveal section img {\n margin: 15px 0px;\n background: rgba(255, 255, 255, 0.12);\n border: 4px solid #000;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }\n\n.reveal section img.plain {\n border: 0;\n box-shadow: none; }\n\n.reveal a img {\n -webkit-transition: all .15s linear;\n -moz-transition: all .15s linear;\n transition: all .15s linear; }\n\n.reveal a:hover img {\n background: rgba(255, 255, 255, 0.2);\n border-color: #00008B;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }\n\n/*********************************************\n * NAVIGATION CONTROLS\n *********************************************/\n.reveal .controls .navigate-left,\n.reveal .controls .navigate-left.enabled {\n border-right-color: #00008B; }\n\n.reveal .controls .navigate-right,\n.reveal .controls .navigate-right.enabled {\n border-left-color: #00008B; }\n\n.reveal .controls .navigate-up,\n.reveal .controls .navigate-up.enabled {\n border-bottom-color: #00008B; }\n\n.reveal .controls .navigate-down,\n.reveal .controls .navigate-down.enabled {\n border-top-color: #00008B; }\n\n.reveal .controls .navigate-left.enabled:hover {\n border-right-color: #0000f1; }\n\n.reveal .controls .navigate-right.enabled:hover {\n border-left-color: #0000f1; }\n\n.reveal .controls .navigate-up.enabled:hover {\n border-bottom-color: #0000f1; }\n\n.reveal .controls .navigate-down.enabled:hover {\n border-top-color: #0000f1; }\n\n/*********************************************\n * PROGRESS BAR\n *********************************************/\n.reveal .progress {\n background: rgba(0, 0, 0, 0.2); }\n\n.reveal .progress span {\n background: #00008B;\n -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }\n",
"slug": "reveal-js/css/theme/simple.css",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/simple.css",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/sky.css": {
"text": "/**\n * Sky theme for reveal.js.\n *\n * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se\n */\n@import url(https://fonts.googleapis.com/css?family=Quicksand:400,700,400italic,700italic);\n@import url(https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700);\n.reveal a {\n line-height: 1.3em; }\n\n/*********************************************\n * GLOBAL STYLES\n *********************************************/\nbody {\n background: #add9e4;\n background: -moz-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);\n background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #f7fbfc), color-stop(100%, #add9e4));\n background: -webkit-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);\n background: -o-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);\n background: -ms-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);\n background: radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);\n background-color: #f7fbfc; }\n\n.reveal {\n font-family: \"Open Sans\", sans-serif;\n font-size: 40px;\n font-weight: normal;\n color: #333; }\n\n::selection {\n color: #fff;\n background: #134674;\n text-shadow: none; }\n\n::-moz-selection {\n color: #fff;\n background: #134674;\n text-shadow: none; }\n\n.reveal .slides > section,\n.reveal .slides > section > section {\n line-height: 1.3;\n font-weight: inherit; }\n\n/*********************************************\n * HEADERS\n *********************************************/\n.reveal h1,\n.reveal h2,\n.reveal h3,\n.reveal h4,\n.reveal h5,\n.reveal h6 {\n margin: 0 0 20px 0;\n color: #333;\n font-family: \"Quicksand\", sans-serif;\n font-weight: normal;\n line-height: 1.2;\n letter-spacing: -0.08em;\n text-transform: uppercase;\n text-shadow: none;\n word-wrap: break-word; }\n\n.reveal h1 {\n font-size: 3.77em; }\n\n.reveal h2 {\n font-size: 2.11em; }\n\n.reveal h3 {\n font-size: 1.55em; }\n\n.reveal h4 {\n font-size: 1em; }\n\n.reveal h1 {\n text-shadow: none; }\n\n/*********************************************\n * OTHER\n *********************************************/\n.reveal p {\n margin: 20px 0;\n line-height: 1.3; }\n\n/* Ensure certain elements are never larger than the slide itself */\n.reveal img,\n.reveal video,\n.reveal iframe {\n max-width: 95%;\n max-height: 95%; }\n\n.reveal strong,\n.reveal b {\n font-weight: bold; }\n\n.reveal em {\n font-style: italic; }\n\n.reveal ol,\n.reveal dl,\n.reveal ul {\n display: inline-block;\n text-align: left;\n margin: 0 0 0 1em; }\n\n.reveal ol {\n list-style-type: decimal; }\n\n.reveal ul {\n list-style-type: disc; }\n\n.reveal ul ul {\n list-style-type: square; }\n\n.reveal ul ul ul {\n list-style-type: circle; }\n\n.reveal ul ul,\n.reveal ul ol,\n.reveal ol ol,\n.reveal ol ul {\n display: block;\n margin-left: 40px; }\n\n.reveal dt {\n font-weight: bold; }\n\n.reveal dd {\n margin-left: 40px; }\n\n.reveal q,\n.reveal blockquote {\n quotes: none; }\n\n.reveal blockquote {\n display: block;\n position: relative;\n width: 70%;\n margin: 20px auto;\n padding: 5px;\n font-style: italic;\n background: rgba(255, 255, 255, 0.05);\n box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }\n\n.reveal blockquote p:first-child,\n.reveal blockquote p:last-child {\n display: inline-block; }\n\n.reveal q {\n font-style: italic; }\n\n.reveal pre {\n display: block;\n position: relative;\n width: 90%;\n margin: 20px auto;\n text-align: left;\n font-size: 0.55em;\n font-family: monospace;\n line-height: 1.2em;\n word-wrap: break-word;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); }\n\n.reveal code {\n font-family: monospace; }\n\n.reveal pre code {\n display: block;\n padding: 5px;\n overflow: auto;\n max-height: 400px;\n word-wrap: normal; }\n\n.reveal table {\n margin: auto;\n border-collapse: collapse;\n border-spacing: 0; }\n\n.reveal table th {\n font-weight: bold; }\n\n.reveal table th,\n.reveal table td {\n text-align: left;\n padding: 0.2em 0.5em 0.2em 0.5em;\n border-bottom: 1px solid; }\n\n.reveal table th[align=\"center\"],\n.reveal table td[align=\"center\"] {\n text-align: center; }\n\n.reveal table th[align=\"right\"],\n.reveal table td[align=\"right\"] {\n text-align: right; }\n\n.reveal table tbody tr:last-child th,\n.reveal table tbody tr:last-child td {\n border-bottom: none; }\n\n.reveal sup {\n vertical-align: super; }\n\n.reveal sub {\n vertical-align: sub; }\n\n.reveal small {\n display: inline-block;\n font-size: 0.6em;\n line-height: 1.2em;\n vertical-align: top; }\n\n.reveal small * {\n vertical-align: top; }\n\n/*********************************************\n * LINKS\n *********************************************/\n.reveal a {\n color: #3b759e;\n text-decoration: none;\n -webkit-transition: color .15s ease;\n -moz-transition: color .15s ease;\n transition: color .15s ease; }\n\n.reveal a:hover {\n color: #74a7cb;\n text-shadow: none;\n border: none; }\n\n.reveal .roll span:after {\n color: #fff;\n background: #264c66; }\n\n/*********************************************\n * IMAGES\n *********************************************/\n.reveal section img {\n margin: 15px 0px;\n background: rgba(255, 255, 255, 0.12);\n border: 4px solid #333;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }\n\n.reveal section img.plain {\n border: 0;\n box-shadow: none; }\n\n.reveal a img {\n -webkit-transition: all .15s linear;\n -moz-transition: all .15s linear;\n transition: all .15s linear; }\n\n.reveal a:hover img {\n background: rgba(255, 255, 255, 0.2);\n border-color: #3b759e;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }\n\n/*********************************************\n * NAVIGATION CONTROLS\n *********************************************/\n.reveal .controls .navigate-left,\n.reveal .controls .navigate-left.enabled {\n border-right-color: #3b759e; }\n\n.reveal .controls .navigate-right,\n.reveal .controls .navigate-right.enabled {\n border-left-color: #3b759e; }\n\n.reveal .controls .navigate-up,\n.reveal .controls .navigate-up.enabled {\n border-bottom-color: #3b759e; }\n\n.reveal .controls .navigate-down,\n.reveal .controls .navigate-down.enabled {\n border-top-color: #3b759e; }\n\n.reveal .controls .navigate-left.enabled:hover {\n border-right-color: #74a7cb; }\n\n.reveal .controls .navigate-right.enabled:hover {\n border-left-color: #74a7cb; }\n\n.reveal .controls .navigate-up.enabled:hover {\n border-bottom-color: #74a7cb; }\n\n.reveal .controls .navigate-down.enabled:hover {\n border-top-color: #74a7cb; }\n\n/*********************************************\n * PROGRESS BAR\n *********************************************/\n.reveal .progress {\n background: rgba(0, 0, 0, 0.2); }\n\n.reveal .progress span {\n background: #3b759e;\n -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }\n",
"slug": "reveal-js/css/theme/sky.css",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/sky.css",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/solarized.css": {
"text": "/**\n * Solarized Light theme for reveal.js.\n * Author: Achim Staebler\n */\n@import url(../../lib/font/league-gothic/league-gothic.css);\n@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);\n/**\n * Solarized colors by Ethan Schoonover\n */\nhtml * {\n color-profile: sRGB;\n rendering-intent: auto; }\n\n/*********************************************\n * GLOBAL STYLES\n *********************************************/\nbody {\n background: #fdf6e3;\n background-color: #fdf6e3; }\n\n.reveal {\n font-family: \"Lato\", sans-serif;\n font-size: 40px;\n font-weight: normal;\n color: #657b83; }\n\n::selection {\n color: #fff;\n background: #d33682;\n text-shadow: none; }\n\n::-moz-selection {\n color: #fff;\n background: #d33682;\n text-shadow: none; }\n\n.reveal .slides > section,\n.reveal .slides > section > section {\n line-height: 1.3;\n font-weight: inherit; }\n\n/*********************************************\n * HEADERS\n *********************************************/\n.reveal h1,\n.reveal h2,\n.reveal h3,\n.reveal h4,\n.reveal h5,\n.reveal h6 {\n margin: 0 0 20px 0;\n color: #586e75;\n font-family: \"League Gothic\", Impact, sans-serif;\n font-weight: normal;\n line-height: 1.2;\n letter-spacing: normal;\n text-transform: uppercase;\n text-shadow: none;\n word-wrap: break-word; }\n\n.reveal h1 {\n font-size: 3.77em; }\n\n.reveal h2 {\n font-size: 2.11em; }\n\n.reveal h3 {\n font-size: 1.55em; }\n\n.reveal h4 {\n font-size: 1em; }\n\n.reveal h1 {\n text-shadow: none; }\n\n/*********************************************\n * OTHER\n *********************************************/\n.reveal p {\n margin: 20px 0;\n line-height: 1.3; }\n\n/* Ensure certain elements are never larger than the slide itself */\n.reveal img,\n.reveal video,\n.reveal iframe {\n max-width: 95%;\n max-height: 95%; }\n\n.reveal strong,\n.reveal b {\n font-weight: bold; }\n\n.reveal em {\n font-style: italic; }\n\n.reveal ol,\n.reveal dl,\n.reveal ul {\n display: inline-block;\n text-align: left;\n margin: 0 0 0 1em; }\n\n.reveal ol {\n list-style-type: decimal; }\n\n.reveal ul {\n list-style-type: disc; }\n\n.reveal ul ul {\n list-style-type: square; }\n\n.reveal ul ul ul {\n list-style-type: circle; }\n\n.reveal ul ul,\n.reveal ul ol,\n.reveal ol ol,\n.reveal ol ul {\n display: block;\n margin-left: 40px; }\n\n.reveal dt {\n font-weight: bold; }\n\n.reveal dd {\n margin-left: 40px; }\n\n.reveal q,\n.reveal blockquote {\n quotes: none; }\n\n.reveal blockquote {\n display: block;\n position: relative;\n width: 70%;\n margin: 20px auto;\n padding: 5px;\n font-style: italic;\n background: rgba(255, 255, 255, 0.05);\n box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }\n\n.reveal blockquote p:first-child,\n.reveal blockquote p:last-child {\n display: inline-block; }\n\n.reveal q {\n font-style: italic; }\n\n.reveal pre {\n display: block;\n position: relative;\n width: 90%;\n margin: 20px auto;\n text-align: left;\n font-size: 0.55em;\n font-family: monospace;\n line-height: 1.2em;\n word-wrap: break-word;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); }\n\n.reveal code {\n font-family: monospace; }\n\n.reveal pre code {\n display: block;\n padding: 5px;\n overflow: auto;\n max-height: 400px;\n word-wrap: normal; }\n\n.reveal table {\n margin: auto;\n border-collapse: collapse;\n border-spacing: 0; }\n\n.reveal table th {\n font-weight: bold; }\n\n.reveal table th,\n.reveal table td {\n text-align: left;\n padding: 0.2em 0.5em 0.2em 0.5em;\n border-bottom: 1px solid; }\n\n.reveal table th[align=\"center\"],\n.reveal table td[align=\"center\"] {\n text-align: center; }\n\n.reveal table th[align=\"right\"],\n.reveal table td[align=\"right\"] {\n text-align: right; }\n\n.reveal table tbody tr:last-child th,\n.reveal table tbody tr:last-child td {\n border-bottom: none; }\n\n.reveal sup {\n vertical-align: super; }\n\n.reveal sub {\n vertical-align: sub; }\n\n.reveal small {\n display: inline-block;\n font-size: 0.6em;\n line-height: 1.2em;\n vertical-align: top; }\n\n.reveal small * {\n vertical-align: top; }\n\n/*********************************************\n * LINKS\n *********************************************/\n.reveal a {\n color: #268bd2;\n text-decoration: none;\n -webkit-transition: color .15s ease;\n -moz-transition: color .15s ease;\n transition: color .15s ease; }\n\n.reveal a:hover {\n color: #78b9e6;\n text-shadow: none;\n border: none; }\n\n.reveal .roll span:after {\n color: #fff;\n background: #1a6091; }\n\n/*********************************************\n * IMAGES\n *********************************************/\n.reveal section img {\n margin: 15px 0px;\n background: rgba(255, 255, 255, 0.12);\n border: 4px solid #657b83;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }\n\n.reveal section img.plain {\n border: 0;\n box-shadow: none; }\n\n.reveal a img {\n -webkit-transition: all .15s linear;\n -moz-transition: all .15s linear;\n transition: all .15s linear; }\n\n.reveal a:hover img {\n background: rgba(255, 255, 255, 0.2);\n border-color: #268bd2;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }\n\n/*********************************************\n * NAVIGATION CONTROLS\n *********************************************/\n.reveal .controls .navigate-left,\n.reveal .controls .navigate-left.enabled {\n border-right-color: #268bd2; }\n\n.reveal .controls .navigate-right,\n.reveal .controls .navigate-right.enabled {\n border-left-color: #268bd2; }\n\n.reveal .controls .navigate-up,\n.reveal .controls .navigate-up.enabled {\n border-bottom-color: #268bd2; }\n\n.reveal .controls .navigate-down,\n.reveal .controls .navigate-down.enabled {\n border-top-color: #268bd2; }\n\n.reveal .controls .navigate-left.enabled:hover {\n border-right-color: #78b9e6; }\n\n.reveal .controls .navigate-right.enabled:hover {\n border-left-color: #78b9e6; }\n\n.reveal .controls .navigate-up.enabled:hover {\n border-bottom-color: #78b9e6; }\n\n.reveal .controls .navigate-down.enabled:hover {\n border-top-color: #78b9e6; }\n\n/*********************************************\n * PROGRESS BAR\n *********************************************/\n.reveal .progress {\n background: rgba(0, 0, 0, 0.2); }\n\n.reveal .progress span {\n background: #268bd2;\n -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }\n",
"slug": "reveal-js/css/theme/solarized.css",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/solarized.css",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/source/beige.scss": {
"text": "/**\n * Beige theme for reveal.js.\n *\n * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se\n */\n\n\n// Default mixins and settings -----------------\n@import \"../template/mixins\";\n@import \"../template/settings\";\n// ---------------------------------------------\n\n\n\n// Include theme-specific fonts\n@import url(../../lib/font/league-gothic/league-gothic.css);\n@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);\n\n\n// Override theme settings (see ../template/settings.scss)\n$mainColor: #333;\n$headingColor: #333;\n$headingTextShadow: none;\n$backgroundColor: #f7f3de;\n$linkColor: #8b743d;\n$linkColorHover: lighten( $linkColor, 20% );\n$selectionBackgroundColor: rgba(79, 64, 28, 0.99);\n$heading1TextShadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15);\n\n// Background generator\n@mixin bodyBackground() {\n\t@include radial-gradient( rgba(247,242,211,1), rgba(255,255,255,1) );\n}\n\n\n\n// Theme template ------------------------------\n@import \"../template/theme\";\n// ---------------------------------------------",
"slug": "reveal-js/css/theme/source/beige.scss",
"type": "text/scss",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/source/beige.scss",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/source/black.scss": {
"text": "/**\n * Black theme for reveal.js. This is the opposite of the 'white' theme.\n *\n * By Hakim El Hattab, http://hakim.se\n */\n\n\n// Default mixins and settings -----------------\n@import \"../template/mixins\";\n@import \"../template/settings\";\n// ---------------------------------------------\n\n\n// Include theme-specific fonts\n@import url(../../lib/font/source-sans-pro/source-sans-pro.css);\n\n\n// Override theme settings (see ../template/settings.scss)\n$backgroundColor: #222;\n\n$mainColor: #fff;\n$headingColor: #fff;\n\n$mainFontSize: 42px;\n$mainFont: 'Source Sans Pro', Helvetica, sans-serif;\n$headingFont: 'Source Sans Pro', Helvetica, sans-serif;\n$headingTextShadow: none;\n$headingLetterSpacing: normal;\n$headingTextTransform: uppercase;\n$headingFontWeight: 600;\n$linkColor: #42affa;\n$linkColorHover: lighten( $linkColor, 15% );\n$selectionBackgroundColor: lighten( $linkColor, 25% );\n\n$heading1Size: 2.5em;\n$heading2Size: 1.6em;\n$heading3Size: 1.3em;\n$heading4Size: 1.0em;\n\nsection.has-light-background {\n\t&, h1, h2, h3, h4, h5, h6 {\n\t\tcolor: #222;\n\t}\n}\n\n\n// Theme template ------------------------------\n@import \"../template/theme\";\n// ---------------------------------------------",
"slug": "reveal-js/css/theme/source/black.scss",
"type": "text/scss",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/source/black.scss",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/source/blood.scss": {
"text": "/**\n * Blood theme for reveal.js\n * Author: Walther http://github.com/Walther\n *\n * Designed to be used with highlight.js theme\n * \"monokai_sublime.css\" available from\n * https://github.com/isagalaev/highlight.js/\n *\n * For other themes, change $codeBackground accordingly.\n *\n */\n\n // Default mixins and settings -----------------\n@import \"../template/mixins\";\n@import \"../template/settings\";\n// ---------------------------------------------\n\n// Include theme-specific fonts\n\n@import url(https://fonts.googleapis.com/css?family=Ubuntu:300,700,300italic,700italic);\n\n// Colors used in the theme\n$blood: #a23;\n$coal: #222;\n$codeBackground: #23241f;\n\n$backgroundColor: $coal;\n\n// Main text\n$mainFont: Ubuntu, 'sans-serif';\n$mainColor: #eee;\n\n// Headings\n$headingFont: Ubuntu, 'sans-serif';\n$headingTextShadow: 2px 2px 2px $coal;\n\n// h1 shadow, borrowed humbly from \n// (c) Default theme by Hakim El Hattab\n$heading1TextShadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15);\n\n// Links\n$linkColor: $blood;\n$linkColorHover: lighten( $linkColor, 20% );\n\n// Text selection\n$selectionBackgroundColor: $blood;\n$selectionColor: #fff;\n\n\n// Theme template ------------------------------\n@import \"../template/theme\";\n// ---------------------------------------------\n\n// some overrides after theme template import\n\n.reveal p {\n font-weight: 300;\n text-shadow: 1px 1px $coal;\n}\n\n.reveal h1,\n.reveal h2,\n.reveal h3,\n.reveal h4,\n.reveal h5,\n.reveal h6 {\n font-weight: 700;\n}\n\n.reveal p code {\n background-color: $codeBackground;\n display: inline-block;\n border-radius: 7px;\n}\n\n.reveal small code {\n vertical-align: baseline;\n}",
"slug": "reveal-js/css/theme/source/blood.scss",
"type": "text/scss",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/source/blood.scss",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/source/league.scss": {
"text": "/**\n * League theme for reveal.js.\n *\n * This was the default theme pre-3.0.0.\n *\n * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se\n */\n\n\n// Default mixins and settings -----------------\n@import \"../template/mixins\";\n@import \"../template/settings\";\n// ---------------------------------------------\n\n\n\n// Include theme-specific fonts\n@import url(../../lib/font/league-gothic/league-gothic.css);\n@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);\n\n// Override theme settings (see ../template/settings.scss)\n$headingTextShadow: 0px 0px 6px rgba(0,0,0,0.2);\n$heading1TextShadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15);\n\n// Background generator\n@mixin bodyBackground() {\n\t@include radial-gradient( rgba(28,30,32,1), rgba(85,90,95,1) );\n}\n\n\n\n// Theme template ------------------------------\n@import \"../template/theme\";\n// ---------------------------------------------",
"slug": "reveal-js/css/theme/source/league.scss",
"type": "text/scss",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/source/league.scss",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/source/moon.scss": {
"text": "/**\n * Solarized Dark theme for reveal.js.\n * Author: Achim Staebler\n */\n\n\n// Default mixins and settings -----------------\n@import \"../template/mixins\";\n@import \"../template/settings\";\n// ---------------------------------------------\n\n\n\n// Include theme-specific fonts\n@import url(../../lib/font/league-gothic/league-gothic.css);\n@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);\n\n/**\n * Solarized colors by Ethan Schoonover\n */\nhtml * {\n\tcolor-profile: sRGB;\n\trendering-intent: auto;\n}\n\n// Solarized colors\n$base03: #002b36;\n$base02: #073642;\n$base01: #586e75;\n$base00: #657b83;\n$base0: #839496;\n$base1: #93a1a1;\n$base2: #eee8d5;\n$base3: #fdf6e3;\n$yellow: #b58900;\n$orange: #cb4b16;\n$red: #dc322f;\n$magenta: #d33682;\n$violet: #6c71c4;\n$blue: #268bd2;\n$cyan: #2aa198;\n$green: #859900;\n\n// Override theme settings (see ../template/settings.scss)\n$mainColor: $base1;\n$headingColor: $base2;\n$headingTextShadow: none;\n$backgroundColor: $base03;\n$linkColor: $blue;\n$linkColorHover: lighten( $linkColor, 20% );\n$selectionBackgroundColor: $magenta;\n\n\n\n// Theme template ------------------------------\n@import \"../template/theme\";\n// ---------------------------------------------\n",
"slug": "reveal-js/css/theme/source/moon.scss",
"type": "text/scss",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/source/moon.scss",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/source/night.scss": {
"text": "/**\n * Black theme for reveal.js.\n *\n * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se\n */\n\n\n// Default mixins and settings -----------------\n@import \"../template/mixins\";\n@import \"../template/settings\";\n// ---------------------------------------------\n\n\n// Include theme-specific fonts\n@import url(https://fonts.googleapis.com/css?family=Montserrat:700);\n@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic,700italic);\n\n\n// Override theme settings (see ../template/settings.scss)\n$backgroundColor: #111;\n\n$mainFont: 'Open Sans', sans-serif;\n$linkColor: #e7ad52;\n$linkColorHover: lighten( $linkColor, 20% );\n$headingFont: 'Montserrat', Impact, sans-serif;\n$headingTextShadow: none;\n$headingLetterSpacing: -0.03em;\n$headingTextTransform: none;\n$selectionBackgroundColor: #e7ad52;\n\n\n// Theme template ------------------------------\n@import \"../template/theme\";\n// ---------------------------------------------",
"slug": "reveal-js/css/theme/source/night.scss",
"type": "text/scss",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/source/night.scss",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/source/serif.scss": {
"text": "/**\n * A simple theme for reveal.js presentations, similar\n * to the default theme. The accent color is brown.\n *\n * This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed.\n */\n\n\n// Default mixins and settings -----------------\n@import \"../template/mixins\";\n@import \"../template/settings\";\n// ---------------------------------------------\n\n\n\n// Override theme settings (see ../template/settings.scss)\n$mainFont: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif;\n$mainColor: #000;\n$headingFont: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif;\n$headingColor: #383D3D;\n$headingTextShadow: none;\n$headingTextTransform: none;\n$backgroundColor: #F0F1EB;\n$linkColor: #51483D;\n$linkColorHover: lighten( $linkColor, 20% );\n$selectionBackgroundColor: #26351C;\n\n.reveal a {\n line-height: 1.3em;\n}\n\n\n// Theme template ------------------------------\n@import \"../template/theme\";\n// ---------------------------------------------\n",
"slug": "reveal-js/css/theme/source/serif.scss",
"type": "text/scss",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/source/serif.scss",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/source/simple.scss": {
"text": "/**\n * A simple theme for reveal.js presentations, similar\n * to the default theme. The accent color is darkblue.\n *\n * This theme is Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed.\n * reveal.js is Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se\n */\n\n\n// Default mixins and settings -----------------\n@import \"../template/mixins\";\n@import \"../template/settings\";\n// ---------------------------------------------\n\n\n\n// Include theme-specific fonts\n@import url(https://fonts.googleapis.com/css?family=News+Cycle:400,700);\n@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);\n\n\n// Override theme settings (see ../template/settings.scss)\n$mainFont: 'Lato', sans-serif;\n$mainColor: #000;\n$headingFont: 'News Cycle', Impact, sans-serif;\n$headingColor: #000;\n$headingTextShadow: none;\n$headingTextTransform: none;\n$backgroundColor: #fff;\n$linkColor: #00008B;\n$linkColorHover: lighten( $linkColor, 20% );\n$selectionBackgroundColor: rgba(0, 0, 0, 0.99);\n\nsection.has-dark-background {\n\t&, h1, h2, h3, h4, h5, h6 {\n\t\tcolor: #fff;\n\t}\n}\n\n\n// Theme template ------------------------------\n@import \"../template/theme\";\n// ---------------------------------------------",
"slug": "reveal-js/css/theme/source/simple.scss",
"type": "text/scss",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/source/simple.scss",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/source/sky.scss": {
"text": "/**\n * Sky theme for reveal.js.\n *\n * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se\n */\n\n\n// Default mixins and settings -----------------\n@import \"../template/mixins\";\n@import \"../template/settings\";\n// ---------------------------------------------\n\n\n\n// Include theme-specific fonts\n@import url(https://fonts.googleapis.com/css?family=Quicksand:400,700,400italic,700italic);\n@import url(https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700);\n\n\n// Override theme settings (see ../template/settings.scss)\n$mainFont: 'Open Sans', sans-serif;\n$mainColor: #333;\n$headingFont: 'Quicksand', sans-serif;\n$headingColor: #333;\n$headingLetterSpacing: -0.08em;\n$headingTextShadow: none;\n$backgroundColor: #f7fbfc;\n$linkColor: #3b759e;\n$linkColorHover: lighten( $linkColor, 20% );\n$selectionBackgroundColor: #134674;\n\n// Fix links so they are not cut off\n.reveal a {\n\tline-height: 1.3em;\n}\n\n// Background generator\n@mixin bodyBackground() {\n\t@include radial-gradient( #add9e4, #f7fbfc );\n}\n\n\n\n// Theme template ------------------------------\n@import \"../template/theme\";\n// ---------------------------------------------\n",
"slug": "reveal-js/css/theme/source/sky.scss",
"type": "text/scss",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/source/sky.scss",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/source/solarized.scss": {
"text": "/**\n * Solarized Light theme for reveal.js.\n * Author: Achim Staebler\n */\n\n\n// Default mixins and settings -----------------\n@import \"../template/mixins\";\n@import \"../template/settings\";\n// ---------------------------------------------\n\n\n\n// Include theme-specific fonts\n@import url(../../lib/font/league-gothic/league-gothic.css);\n@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);\n\n\n/**\n * Solarized colors by Ethan Schoonover\n */\nhtml * {\n\tcolor-profile: sRGB;\n\trendering-intent: auto;\n}\n\n// Solarized colors\n$base03: #002b36;\n$base02: #073642;\n$base01: #586e75;\n$base00: #657b83;\n$base0: #839496;\n$base1: #93a1a1;\n$base2: #eee8d5;\n$base3: #fdf6e3;\n$yellow: #b58900;\n$orange: #cb4b16;\n$red: #dc322f;\n$magenta: #d33682;\n$violet: #6c71c4;\n$blue: #268bd2;\n$cyan: #2aa198;\n$green: #859900;\n\n// Override theme settings (see ../template/settings.scss)\n$mainColor: $base00;\n$headingColor: $base01;\n$headingTextShadow: none;\n$backgroundColor: $base3;\n$linkColor: $blue;\n$linkColorHover: lighten( $linkColor, 20% );\n$selectionBackgroundColor: $magenta;\n\n// Background generator\n// @mixin bodyBackground() {\n// \t@include radial-gradient( rgba($base3,1), rgba(lighten($base3, 20%),1) );\n// }\n\n\n\n// Theme template ------------------------------\n@import \"../template/theme\";\n// ---------------------------------------------\n",
"slug": "reveal-js/css/theme/source/solarized.scss",
"type": "text/scss",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/source/solarized.scss",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/source/white.scss": {
"text": "/**\n * White theme for reveal.js. This is the opposite of the 'black' theme.\n *\n * By Hakim El Hattab, http://hakim.se\n */\n\n\n// Default mixins and settings -----------------\n@import \"../template/mixins\";\n@import \"../template/settings\";\n// ---------------------------------------------\n\n\n// Include theme-specific fonts\n@import url(../../lib/font/source-sans-pro/source-sans-pro.css);\n\n\n// Override theme settings (see ../template/settings.scss)\n$backgroundColor: #fff;\n\n$mainColor: #222;\n$headingColor: #222;\n\n$mainFontSize: 42px;\n$mainFont: 'Source Sans Pro', Helvetica, sans-serif;\n$headingFont: 'Source Sans Pro', Helvetica, sans-serif;\n$headingTextShadow: none;\n$headingLetterSpacing: normal;\n$headingTextTransform: uppercase;\n$headingFontWeight: 600;\n$linkColor: #2a76dd;\n$linkColorHover: lighten( $linkColor, 15% );\n$selectionBackgroundColor: lighten( $linkColor, 25% );\n\n$heading1Size: 2.5em;\n$heading2Size: 1.6em;\n$heading3Size: 1.3em;\n$heading4Size: 1.0em;\n\nsection.has-dark-background {\n\t&, h1, h2, h3, h4, h5, h6 {\n\t\tcolor: #fff;\n\t}\n}\n\n\n// Theme template ------------------------------\n@import \"../template/theme\";\n// ---------------------------------------------",
"slug": "reveal-js/css/theme/source/white.scss",
"type": "text/scss",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/source/white.scss",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/template/mixins.scss": {
"text": "@mixin vertical-gradient( $top, $bottom ) {\n\tbackground: $top;\n\tbackground: -moz-linear-gradient( top, $top 0%, $bottom 100% );\n\tbackground: -webkit-gradient( linear, left top, left bottom, color-stop(0%,$top), color-stop(100%,$bottom) );\n\tbackground: -webkit-linear-gradient( top, $top 0%, $bottom 100% );\n\tbackground: -o-linear-gradient( top, $top 0%, $bottom 100% );\n\tbackground: -ms-linear-gradient( top, $top 0%, $bottom 100% );\n\tbackground: linear-gradient( top, $top 0%, $bottom 100% );\n}\n\n@mixin horizontal-gradient( $top, $bottom ) {\n\tbackground: $top;\n\tbackground: -moz-linear-gradient( left, $top 0%, $bottom 100% );\n\tbackground: -webkit-gradient( linear, left top, right top, color-stop(0%,$top), color-stop(100%,$bottom) );\n\tbackground: -webkit-linear-gradient( left, $top 0%, $bottom 100% );\n\tbackground: -o-linear-gradient( left, $top 0%, $bottom 100% );\n\tbackground: -ms-linear-gradient( left, $top 0%, $bottom 100% );\n\tbackground: linear-gradient( left, $top 0%, $bottom 100% );\n}\n\n@mixin radial-gradient( $outer, $inner, $type: circle ) {\n\tbackground: $outer;\n\tbackground: -moz-radial-gradient( center, $type cover, $inner 0%, $outer 100% );\n\tbackground: -webkit-gradient( radial, center center, 0px, center center, 100%, color-stop(0%,$inner), color-stop(100%,$outer) );\n\tbackground: -webkit-radial-gradient( center, $type cover, $inner 0%, $outer 100% );\n\tbackground: -o-radial-gradient( center, $type cover, $inner 0%, $outer 100% );\n\tbackground: -ms-radial-gradient( center, $type cover, $inner 0%, $outer 100% );\n\tbackground: radial-gradient( center, $type cover, $inner 0%, $outer 100% );\n}",
"slug": "reveal-js/css/theme/template/mixins.scss",
"type": "text/scss",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/template/mixins.scss",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/template/settings.scss": {
"text": "// Base settings for all themes that can optionally be\n// overridden by the super-theme\n\n// Background of the presentation\n$backgroundColor: #2b2b2b;\n\n// Primary/body text\n$mainFont: 'Lato', sans-serif;\n$mainFontSize: 40px;\n$mainColor: #eee;\n\n// Vertical spacing between blocks of text\n$blockMargin: 20px;\n\n// Headings\n$headingMargin: 0 0 $blockMargin 0;\n$headingFont: 'League Gothic', Impact, sans-serif;\n$headingColor: #eee;\n$headingLineHeight: 1.2;\n$headingLetterSpacing: normal;\n$headingTextTransform: uppercase;\n$headingTextShadow: none;\n$headingFontWeight: normal;\n$heading1TextShadow: $headingTextShadow;\n\n$heading1Size: 3.77em;\n$heading2Size: 2.11em;\n$heading3Size: 1.55em;\n$heading4Size: 1.00em;\n\n// Links and actions\n$linkColor: #13DAEC;\n$linkColorHover: lighten( $linkColor, 20% );\n\n// Text selection\n$selectionBackgroundColor: #FF5E99;\n$selectionColor: #fff;\n\n// Generates the presentation background, can be overridden\n// to return a background image or gradient\n@mixin bodyBackground() {\n\tbackground: $backgroundColor;\n}",
"slug": "reveal-js/css/theme/template/settings.scss",
"type": "text/scss",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/template/settings.scss",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/template/theme.scss": {
"text": "// Base theme template for reveal.js\n\n/*********************************************\n * GLOBAL STYLES\n *********************************************/\n\nbody {\n\t@include bodyBackground();\n\tbackground-color: $backgroundColor;\n}\n\n.reveal {\n\tfont-family: $mainFont;\n\tfont-size: $mainFontSize;\n\tfont-weight: normal;\n\tcolor: $mainColor;\n}\n\n::selection {\n\tcolor: $selectionColor;\n\tbackground: $selectionBackgroundColor;\n\ttext-shadow: none;\n}\n\n::-moz-selection {\n\tcolor: $selectionColor;\n\tbackground: $selectionBackgroundColor;\n\ttext-shadow: none;\n}\n\n.reveal .slides>section,\n.reveal .slides>section>section {\n\tline-height: 1.3;\n\tfont-weight: inherit;\n}\n\n/*********************************************\n * HEADERS\n *********************************************/\n\n.reveal h1,\n.reveal h2,\n.reveal h3,\n.reveal h4,\n.reveal h5,\n.reveal h6 {\n\tmargin: $headingMargin;\n\tcolor: $headingColor;\n\n\tfont-family: $headingFont;\n\tfont-weight: $headingFontWeight;\n\tline-height: $headingLineHeight;\n\tletter-spacing: $headingLetterSpacing;\n\n\ttext-transform: $headingTextTransform;\n\ttext-shadow: $headingTextShadow;\n\n\tword-wrap: break-word;\n}\n\n.reveal h1 {font-size: $heading1Size; }\n.reveal h2 {font-size: $heading2Size; }\n.reveal h3 {font-size: $heading3Size; }\n.reveal h4 {font-size: $heading4Size; }\n\n.reveal h1 {\n\ttext-shadow: $heading1TextShadow;\n}\n\n\n/*********************************************\n * OTHER\n *********************************************/\n\n.reveal p {\n\tmargin: $blockMargin 0;\n\tline-height: 1.3;\n}\n\n/* Ensure certain elements are never larger than the slide itself */\n.reveal img,\n.reveal video,\n.reveal iframe {\n\tmax-width: 95%;\n\tmax-height: 95%;\n}\n.reveal strong,\n.reveal b {\n\tfont-weight: bold;\n}\n\n.reveal em {\n\tfont-style: italic;\n}\n\n.reveal ol,\n.reveal dl,\n.reveal ul {\n\tdisplay: inline-block;\n\n\ttext-align: left;\n\tmargin: 0 0 0 1em;\n}\n\n.reveal ol {\n\tlist-style-type: decimal;\n}\n\n.reveal ul {\n\tlist-style-type: disc;\n}\n\n.reveal ul ul {\n\tlist-style-type: square;\n}\n\n.reveal ul ul ul {\n\tlist-style-type: circle;\n}\n\n.reveal ul ul,\n.reveal ul ol,\n.reveal ol ol,\n.reveal ol ul {\n\tdisplay: block;\n\tmargin-left: 40px;\n}\n\n.reveal dt {\n\tfont-weight: bold;\n}\n\n.reveal dd {\n\tmargin-left: 40px;\n}\n\n.reveal q,\n.reveal blockquote {\n\tquotes: none;\n}\n\n.reveal blockquote {\n\tdisplay: block;\n\tposition: relative;\n\twidth: 70%;\n\tmargin: $blockMargin auto;\n\tpadding: 5px;\n\n\tfont-style: italic;\n\tbackground: rgba(255, 255, 255, 0.05);\n\tbox-shadow: 0px 0px 2px rgba(0,0,0,0.2);\n}\n\t.reveal blockquote p:first-child,\n\t.reveal blockquote p:last-child {\n\t\tdisplay: inline-block;\n\t}\n\n.reveal q {\n\tfont-style: italic;\n}\n\n.reveal pre {\n\tdisplay: block;\n\tposition: relative;\n\twidth: 90%;\n\tmargin: $blockMargin auto;\n\n\ttext-align: left;\n\tfont-size: 0.55em;\n\tfont-family: monospace;\n\tline-height: 1.2em;\n\n\tword-wrap: break-word;\n\n\tbox-shadow: 0px 0px 6px rgba(0,0,0,0.3);\n}\n.reveal code {\n\tfont-family: monospace;\n}\n\n.reveal pre code {\n\tdisplay: block;\n\tpadding: 5px;\n\toverflow: auto;\n\tmax-height: 400px;\n\tword-wrap: normal;\n}\n\n.reveal table {\n\tmargin: auto;\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}\n\n.reveal table th {\n\tfont-weight: bold;\n}\n\n.reveal table th,\n.reveal table td {\n\ttext-align: left;\n\tpadding: 0.2em 0.5em 0.2em 0.5em;\n\tborder-bottom: 1px solid;\n}\n\n.reveal table th[align=\"center\"],\n.reveal table td[align=\"center\"] {\n\ttext-align: center;\n}\n\n.reveal table th[align=\"right\"],\n.reveal table td[align=\"right\"] {\n\ttext-align: right;\n}\n\n.reveal table tbody tr:last-child th,\n.reveal table tbody tr:last-child td {\n\tborder-bottom: none;\n}\n\n.reveal sup {\n\tvertical-align: super;\n}\n.reveal sub {\n\tvertical-align: sub;\n}\n\n.reveal small {\n\tdisplay: inline-block;\n\tfont-size: 0.6em;\n\tline-height: 1.2em;\n\tvertical-align: top;\n}\n\n.reveal small * {\n\tvertical-align: top;\n}\n\n\n/*********************************************\n * LINKS\n *********************************************/\n\n.reveal a {\n\tcolor: $linkColor;\n\ttext-decoration: none;\n\n\t-webkit-transition: color .15s ease;\n\t -moz-transition: color .15s ease;\n\t transition: color .15s ease;\n}\n\t.reveal a:hover {\n\t\tcolor: $linkColorHover;\n\n\t\ttext-shadow: none;\n\t\tborder: none;\n\t}\n\n.reveal .roll span:after {\n\tcolor: #fff;\n\tbackground: darken( $linkColor, 15% );\n}\n\n\n/*********************************************\n * IMAGES\n *********************************************/\n\n.reveal section img {\n\tmargin: 15px 0px;\n\tbackground: rgba(255,255,255,0.12);\n\tborder: 4px solid $mainColor;\n\n\tbox-shadow: 0 0 10px rgba(0, 0, 0, 0.15);\n}\n\n\t.reveal section img.plain {\n\t\tborder: 0;\n\t\tbox-shadow: none;\n\t}\n\n\t.reveal a img {\n\t\t-webkit-transition: all .15s linear;\n\t\t -moz-transition: all .15s linear;\n\t\t transition: all .15s linear;\n\t}\n\n\t.reveal a:hover img {\n\t\tbackground: rgba(255,255,255,0.2);\n\t\tborder-color: $linkColor;\n\n\t\tbox-shadow: 0 0 20px rgba(0, 0, 0, 0.55);\n\t}\n\n\n/*********************************************\n * NAVIGATION CONTROLS\n *********************************************/\n\n.reveal .controls .navigate-left,\n.reveal .controls .navigate-left.enabled {\n\tborder-right-color: $linkColor;\n}\n\n.reveal .controls .navigate-right,\n.reveal .controls .navigate-right.enabled {\n\tborder-left-color: $linkColor;\n}\n\n.reveal .controls .navigate-up,\n.reveal .controls .navigate-up.enabled {\n\tborder-bottom-color: $linkColor;\n}\n\n.reveal .controls .navigate-down,\n.reveal .controls .navigate-down.enabled {\n\tborder-top-color: $linkColor;\n}\n\n.reveal .controls .navigate-left.enabled:hover {\n\tborder-right-color: $linkColorHover;\n}\n\n.reveal .controls .navigate-right.enabled:hover {\n\tborder-left-color: $linkColorHover;\n}\n\n.reveal .controls .navigate-up.enabled:hover {\n\tborder-bottom-color: $linkColorHover;\n}\n\n.reveal .controls .navigate-down.enabled:hover {\n\tborder-top-color: $linkColorHover;\n}\n\n\n/*********************************************\n * PROGRESS BAR\n *********************************************/\n\n.reveal .progress {\n\tbackground: rgba(0,0,0,0.2);\n}\n\t.reveal .progress span {\n\t\tbackground: $linkColor;\n\n\t\t-webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);\n\t\t -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);\n\t\t transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);\n\t}\n\n\n",
"slug": "reveal-js/css/theme/template/theme.scss",
"type": "text/scss",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/template/theme.scss",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/css/theme/white.css": {
"text": "/**\n * White theme for reveal.js. This is the opposite of the 'black' theme.\n *\n * By Hakim El Hattab, http://hakim.se\n */\n@import url(../../lib/font/source-sans-pro/source-sans-pro.css);\nsection.has-dark-background, section.has-dark-background h1, section.has-dark-background h2, section.has-dark-background h3, section.has-dark-background h4, section.has-dark-background h5, section.has-dark-background h6 {\n color: #fff; }\n\n/*********************************************\n * GLOBAL STYLES\n *********************************************/\nbody {\n background: #fff;\n background-color: #fff; }\n\n.reveal {\n font-family: \"Source Sans Pro\", Helvetica, sans-serif;\n font-size: 42px;\n font-weight: normal;\n color: #222; }\n\n::selection {\n color: #fff;\n background: #98bdef;\n text-shadow: none; }\n\n::-moz-selection {\n color: #fff;\n background: #98bdef;\n text-shadow: none; }\n\n.reveal .slides > section,\n.reveal .slides > section > section {\n line-height: 1.3;\n font-weight: inherit; }\n\n/*********************************************\n * HEADERS\n *********************************************/\n.reveal h1,\n.reveal h2,\n.reveal h3,\n.reveal h4,\n.reveal h5,\n.reveal h6 {\n margin: 0 0 20px 0;\n color: #222;\n font-family: \"Source Sans Pro\", Helvetica, sans-serif;\n font-weight: 600;\n line-height: 1.2;\n letter-spacing: normal;\n text-transform: uppercase;\n text-shadow: none;\n word-wrap: break-word; }\n\n.reveal h1 {\n font-size: 2.5em; }\n\n.reveal h2 {\n font-size: 1.6em; }\n\n.reveal h3 {\n font-size: 1.3em; }\n\n.reveal h4 {\n font-size: 1em; }\n\n.reveal h1 {\n text-shadow: none; }\n\n/*********************************************\n * OTHER\n *********************************************/\n.reveal p {\n margin: 20px 0;\n line-height: 1.3; }\n\n/* Ensure certain elements are never larger than the slide itself */\n.reveal img,\n.reveal video,\n.reveal iframe {\n max-width: 95%;\n max-height: 95%; }\n\n.reveal strong,\n.reveal b {\n font-weight: bold; }\n\n.reveal em {\n font-style: italic; }\n\n.reveal ol,\n.reveal dl,\n.reveal ul {\n display: inline-block;\n text-align: left;\n margin: 0 0 0 1em; }\n\n.reveal ol {\n list-style-type: decimal; }\n\n.reveal ul {\n list-style-type: disc; }\n\n.reveal ul ul {\n list-style-type: square; }\n\n.reveal ul ul ul {\n list-style-type: circle; }\n\n.reveal ul ul,\n.reveal ul ol,\n.reveal ol ol,\n.reveal ol ul {\n display: block;\n margin-left: 40px; }\n\n.reveal dt {\n font-weight: bold; }\n\n.reveal dd {\n margin-left: 40px; }\n\n.reveal q,\n.reveal blockquote {\n quotes: none; }\n\n.reveal blockquote {\n display: block;\n position: relative;\n width: 70%;\n margin: 20px auto;\n padding: 5px;\n font-style: italic;\n background: rgba(255, 255, 255, 0.05);\n box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); }\n\n.reveal blockquote p:first-child,\n.reveal blockquote p:last-child {\n display: inline-block; }\n\n.reveal q {\n font-style: italic; }\n\n.reveal pre {\n display: block;\n position: relative;\n width: 90%;\n margin: 20px auto;\n text-align: left;\n font-size: 0.55em;\n font-family: monospace;\n line-height: 1.2em;\n word-wrap: break-word;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); }\n\n.reveal code {\n font-family: monospace; }\n\n.reveal pre code {\n display: block;\n padding: 5px;\n overflow: auto;\n max-height: 400px;\n word-wrap: normal; }\n\n.reveal table {\n margin: auto;\n border-collapse: collapse;\n border-spacing: 0; }\n\n.reveal table th {\n font-weight: bold; }\n\n.reveal table th,\n.reveal table td {\n text-align: left;\n padding: 0.2em 0.5em 0.2em 0.5em;\n border-bottom: 1px solid; }\n\n.reveal table th[align=\"center\"],\n.reveal table td[align=\"center\"] {\n text-align: center; }\n\n.reveal table th[align=\"right\"],\n.reveal table td[align=\"right\"] {\n text-align: right; }\n\n.reveal table tbody tr:last-child th,\n.reveal table tbody tr:last-child td {\n border-bottom: none; }\n\n.reveal sup {\n vertical-align: super; }\n\n.reveal sub {\n vertical-align: sub; }\n\n.reveal small {\n display: inline-block;\n font-size: 0.6em;\n line-height: 1.2em;\n vertical-align: top; }\n\n.reveal small * {\n vertical-align: top; }\n\n/*********************************************\n * LINKS\n *********************************************/\n.reveal a {\n color: #2a76dd;\n text-decoration: none;\n -webkit-transition: color .15s ease;\n -moz-transition: color .15s ease;\n transition: color .15s ease; }\n\n.reveal a:hover {\n color: #6ca0e8;\n text-shadow: none;\n border: none; }\n\n.reveal .roll span:after {\n color: #fff;\n background: #1a53a1; }\n\n/*********************************************\n * IMAGES\n *********************************************/\n.reveal section img {\n margin: 15px 0px;\n background: rgba(255, 255, 255, 0.12);\n border: 4px solid #222;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); }\n\n.reveal section img.plain {\n border: 0;\n box-shadow: none; }\n\n.reveal a img {\n -webkit-transition: all .15s linear;\n -moz-transition: all .15s linear;\n transition: all .15s linear; }\n\n.reveal a:hover img {\n background: rgba(255, 255, 255, 0.2);\n border-color: #2a76dd;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }\n\n/*********************************************\n * NAVIGATION CONTROLS\n *********************************************/\n.reveal .controls .navigate-left,\n.reveal .controls .navigate-left.enabled {\n border-right-color: #2a76dd; }\n\n.reveal .controls .navigate-right,\n.reveal .controls .navigate-right.enabled {\n border-left-color: #2a76dd; }\n\n.reveal .controls .navigate-up,\n.reveal .controls .navigate-up.enabled {\n border-bottom-color: #2a76dd; }\n\n.reveal .controls .navigate-down,\n.reveal .controls .navigate-down.enabled {\n border-top-color: #2a76dd; }\n\n.reveal .controls .navigate-left.enabled:hover {\n border-right-color: #6ca0e8; }\n\n.reveal .controls .navigate-right.enabled:hover {\n border-left-color: #6ca0e8; }\n\n.reveal .controls .navigate-up.enabled:hover {\n border-bottom-color: #6ca0e8; }\n\n.reveal .controls .navigate-down.enabled:hover {\n border-top-color: #6ca0e8; }\n\n/*********************************************\n * PROGRESS BAR\n *********************************************/\n.reveal .progress {\n background: rgba(0, 0, 0, 0.2); }\n\n.reveal .progress span {\n background: #2a76dd;\n -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);\n transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }\n",
"slug": "reveal-js/css/theme/white.css",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/reveal-js/files/css/theme/white.css",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/js/reveal.js": {
"text": "/*!\n * reveal.js\n * http://lab.hakim.se/reveal-js\n * MIT licensed\n *\n * Copyright (C) 2017 Hakim El Hattab, http://hakim.se\n */\n(function( root, factory ) {\n\tif( typeof define === 'function' && define.amd ) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine( function() {\n\t\t\troot.Reveal = factory();\n\t\t\treturn root.Reveal;\n\t\t} );\n\t} else if( typeof exports === 'object' ) {\n\t\t// Node. Does not work with strict CommonJS.\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Browser globals.\n\t\troot.Reveal = factory();\n\t}\n}( this, function() {\n\n\t'use strict';\n\n\tvar Reveal;\n\n\t// The reveal.js version\n\tvar VERSION = '3.5.0';\n\n\tvar SLIDES_SELECTOR = '.slides section',\n\t\tHORIZONTAL_SLIDES_SELECTOR = '.slides>section',\n\t\tVERTICAL_SLIDES_SELECTOR = '.slides>section.present>section',\n\t\tHOME_SLIDE_SELECTOR = '.slides>section:first-of-type',\n\t\tUA = navigator.userAgent,\n\n\t\t// Configuration defaults, can be overridden at initialization time\n\t\tconfig = {\n\n\t\t\t// The \"normal\" size of the presentation, aspect ratio will be preserved\n\t\t\t// when the presentation is scaled to fit different resolutions\n\t\t\twidth: 960,\n\t\t\theight: 700,\n\n\t\t\t// Factor of the display size that should remain empty around the content\n\t\t\tmargin: 0.04,\n\n\t\t\t// Bounds for smallest/largest possible scale to apply to content\n\t\t\tminScale: 0.2,\n\t\t\tmaxScale: 2.0,\n\n\t\t\t// Display controls in the bottom right corner\n\t\t\tcontrols: true,\n\n\t\t\t// Display a presentation progress bar\n\t\t\tprogress: true,\n\n\t\t\t// Display the page number of the current slide\n\t\t\tslideNumber: false,\n\n\t\t\t// Determine which displays to show the slide number on\n\t\t\tshowSlideNumber: 'all',\n\n\t\t\t// Push each slide change to the browser history\n\t\t\thistory: false,\n\n\t\t\t// Enable keyboard shortcuts for navigation\n\t\t\tkeyboard: true,\n\n\t\t\t// Optional function that blocks keyboard events when retuning false\n\t\t\tkeyboardCondition: null,\n\n\t\t\t// Enable the slide overview mode\n\t\t\toverview: true,\n\n\t\t\t// Vertical centering of slides\n\t\t\tcenter: true,\n\n\t\t\t// Enables touch navigation on devices with touch input\n\t\t\ttouch: true,\n\n\t\t\t// Loop the presentation\n\t\t\tloop: false,\n\n\t\t\t// Change the presentation direction to be RTL\n\t\t\trtl: false,\n\n\t\t\t// Randomizes the order of slides each time the presentation loads\n\t\t\tshuffle: false,\n\n\t\t\t// Turns fragments on and off globally\n\t\t\tfragments: true,\n\n\t\t\t// Flags if the presentation is running in an embedded mode,\n\t\t\t// i.e. contained within a limited portion of the screen\n\t\t\tembedded: false,\n\n\t\t\t// Flags if we should show a help overlay when the question-mark\n\t\t\t// key is pressed\n\t\t\thelp: true,\n\n\t\t\t// Flags if it should be possible to pause the presentation (blackout)\n\t\t\tpause: true,\n\n\t\t\t// Flags if speaker notes should be visible to all viewers\n\t\t\tshowNotes: false,\n\n\t\t\t// Global override for autolaying embedded media (video/audio/iframe)\n\t\t\t// - null: Media will only autoplay if data-autoplay is present\n\t\t\t// - true: All media will autoplay, regardless of individual setting\n\t\t\t// - false: No media will autoplay, regardless of individual setting\n\t\t\tautoPlayMedia: null,\n\n\t\t\t// Number of milliseconds between automatically proceeding to the\n\t\t\t// next slide, disabled when set to 0, this value can be overwritten\n\t\t\t// by using a data-autoslide attribute on your slides\n\t\t\tautoSlide: 0,\n\n\t\t\t// Stop auto-sliding after user input\n\t\t\tautoSlideStoppable: true,\n\n\t\t\t// Use this method for navigation when auto-sliding (defaults to navigateNext)\n\t\t\tautoSlideMethod: null,\n\n\t\t\t// Enable slide navigation via mouse wheel\n\t\t\tmouseWheel: false,\n\n\t\t\t// Apply a 3D roll to links on hover\n\t\t\trollingLinks: false,\n\n\t\t\t// Hides the address bar on mobile devices\n\t\t\thideAddressBar: true,\n\n\t\t\t// Opens links in an iframe preview overlay\n\t\t\tpreviewLinks: false,\n\n\t\t\t// Exposes the reveal.js API through window.postMessage\n\t\t\tpostMessage: true,\n\n\t\t\t// Dispatches all reveal.js events to the parent window through postMessage\n\t\t\tpostMessageEvents: false,\n\n\t\t\t// Focuses body when page changes visibility to ensure keyboard shortcuts work\n\t\t\tfocusBodyOnPageVisibilityChange: true,\n\n\t\t\t// Transition style\n\t\t\ttransition: 'slide', // none/fade/slide/convex/concave/zoom\n\n\t\t\t// Transition speed\n\t\t\ttransitionSpeed: 'default', // default/fast/slow\n\n\t\t\t// Transition style for full page slide backgrounds\n\t\t\tbackgroundTransition: 'fade', // none/fade/slide/convex/concave/zoom\n\n\t\t\t// Parallax background image\n\t\t\tparallaxBackgroundImage: '', // CSS syntax, e.g. \"a.jpg\"\n\n\t\t\t// Parallax background size\n\t\t\tparallaxBackgroundSize: '', // CSS syntax, e.g. \"3000px 2000px\"\n\n\t\t\t// Amount of pixels to move the parallax background per slide step\n\t\t\tparallaxBackgroundHorizontal: null,\n\t\t\tparallaxBackgroundVertical: null,\n\n\t\t\t// The maximum number of pages a single slide can expand onto when printing\n\t\t\t// to PDF, unlimited by default\n\t\t\tpdfMaxPagesPerSlide: Number.POSITIVE_INFINITY,\n\n\t\t\t// Offset used to reduce the height of content within exported PDF pages.\n\t\t\t// This exists to account for environment differences based on how you\n\t\t\t// print to PDF. CLI printing options, like phantomjs and wkpdf, can end\n\t\t\t// on precisely the total height of the document whereas in-browser\n\t\t\t// printing has to end one pixel before.\n\t\t\tpdfPageHeightOffset: -1,\n\n\t\t\t// Number of slides away from the current that are visible\n\t\t\tviewDistance: 3,\n\n\t\t\t// The display mode that will be used to show slides\n\t\t\tdisplay: 'block',\n\n\t\t\t// Script dependencies to load\n\t\t\tdependencies: []\n\n\t\t},\n\n\t\t// Flags if Reveal.initialize() has been called\n\t\tinitialized = false,\n\n\t\t// Flags if reveal.js is loaded (has dispatched the 'ready' event)\n\t\tloaded = false,\n\n\t\t// Flags if the overview mode is currently active\n\t\toverview = false,\n\n\t\t// Holds the dimensions of our overview slides, including margins\n\t\toverviewSlideWidth = null,\n\t\toverviewSlideHeight = null,\n\n\t\t// The horizontal and vertical index of the currently active slide\n\t\tindexh,\n\t\tindexv,\n\n\t\t// The previous and current slide HTML elements\n\t\tpreviousSlide,\n\t\tcurrentSlide,\n\n\t\tpreviousBackground,\n\n\t\t// Slides may hold a data-state attribute which we pick up and apply\n\t\t// as a class to the body. This list contains the combined state of\n\t\t// all current slides.\n\t\tstate = [],\n\n\t\t// The current scale of the presentation (see width/height config)\n\t\tscale = 1,\n\n\t\t// CSS transform that is currently applied to the slides container,\n\t\t// split into two groups\n\t\tslidesTransform = { layout: '', overview: '' },\n\n\t\t// Cached references to DOM elements\n\t\tdom = {},\n\n\t\t// Features supported by the browser, see #checkCapabilities()\n\t\tfeatures = {},\n\n\t\t// Client is a mobile device, see #checkCapabilities()\n\t\tisMobileDevice,\n\n\t\t// Client is a desktop Chrome, see #checkCapabilities()\n\t\tisChrome,\n\n\t\t// Throttles mouse wheel navigation\n\t\tlastMouseWheelStep = 0,\n\n\t\t// Delays updates to the URL due to a Chrome thumbnailer bug\n\t\twriteURLTimeout = 0,\n\n\t\t// Flags if the interaction event listeners are bound\n\t\teventsAreBound = false,\n\n\t\t// The current auto-slide duration\n\t\tautoSlide = 0,\n\n\t\t// Auto slide properties\n\t\tautoSlidePlayer,\n\t\tautoSlideTimeout = 0,\n\t\tautoSlideStartTime = -1,\n\t\tautoSlidePaused = false,\n\n\t\t// Holds information about the currently ongoing touch input\n\t\ttouch = {\n\t\t\tstartX: 0,\n\t\t\tstartY: 0,\n\t\t\tstartSpan: 0,\n\t\t\tstartCount: 0,\n\t\t\tcaptured: false,\n\t\t\tthreshold: 40\n\t\t},\n\n\t\t// Holds information about the keyboard shortcuts\n\t\tkeyboardShortcuts = {\n\t\t\t'N , SPACE':\t\t\t'Next slide',\n\t\t\t'P':\t\t\t\t\t'Previous slide',\n\t\t\t'← , H':\t\t'Navigate left',\n\t\t\t'→ , L':\t\t'Navigate right',\n\t\t\t'↑ , K':\t\t'Navigate up',\n\t\t\t'↓ , J':\t\t'Navigate down',\n\t\t\t'Home':\t\t\t\t\t'First slide',\n\t\t\t'End':\t\t\t\t\t'Last slide',\n\t\t\t'B , .':\t\t\t\t'Pause',\n\t\t\t'F':\t\t\t\t\t'Fullscreen',\n\t\t\t'ESC, O':\t\t\t\t'Slide overview'\n\t\t};\n\n\t/**\n\t * Starts up the presentation if the client is capable.\n\t */\n\tfunction initialize( options ) {\n\n\t\t// Make sure we only initialize once\n\t\tif( initialized === true ) return;\n\n\t\tinitialized = true;\n\n\t\tcheckCapabilities();\n\n\t\tif( !features.transforms2d && !features.transforms3d ) {\n\t\t\tdocument.body.setAttribute( 'class', 'no-transforms' );\n\n\t\t\t// Since JS won't be running any further, we load all lazy\n\t\t\t// loading elements upfront\n\t\t\tvar images = toArray( document.getElementsByTagName( 'img' ) ),\n\t\t\t\tiframes = toArray( document.getElementsByTagName( 'iframe' ) );\n\n\t\t\tvar lazyLoadable = images.concat( iframes );\n\n\t\t\tfor( var i = 0, len = lazyLoadable.length; i < len; i++ ) {\n\t\t\t\tvar element = lazyLoadable[i];\n\t\t\t\tif( element.getAttribute( 'data-src' ) ) {\n\t\t\t\t\telement.setAttribute( 'src', element.getAttribute( 'data-src' ) );\n\t\t\t\t\telement.removeAttribute( 'data-src' );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If the browser doesn't support core features we won't be\n\t\t\t// using JavaScript to control the presentation\n\t\t\treturn;\n\t\t}\n\n\t\t// Cache references to key DOM elements\n\t\tdom.wrapper = document.querySelector( '.reveal' );\n\t\tdom.slides = document.querySelector( '.reveal .slides' );\n\n\t\t// Force a layout when the whole page, incl fonts, has loaded\n\t\twindow.addEventListener( 'load', layout, false );\n\n\t\tvar query = Reveal.getQueryHash();\n\n\t\t// Do not accept new dependencies via query config to avoid\n\t\t// the potential of malicious script injection\n\t\tif( typeof query['dependencies'] !== 'undefined' ) delete query['dependencies'];\n\n\t\t// Copy options over to our config object\n\t\textend( config, options );\n\t\textend( config, query );\n\n\t\t// Hide the address bar in mobile browsers\n\t\thideAddressBar();\n\n\t\t// Loads the dependencies and continues to #start() once done\n\t\tload();\n\n\t}\n\n\t/**\n\t * Inspect the client to see what it's capable of, this\n\t * should only happens once per runtime.\n\t */\n\tfunction checkCapabilities() {\n\n\t\tisMobileDevice = /(iphone|ipod|ipad|android)/gi.test( UA );\n\t\tisChrome = /chrome/i.test( UA ) && !/edge/i.test( UA );\n\n\t\tvar testElement = document.createElement( 'div' );\n\n\t\tfeatures.transforms3d = 'WebkitPerspective' in testElement.style ||\n\t\t\t\t\t\t\t\t'MozPerspective' in testElement.style ||\n\t\t\t\t\t\t\t\t'msPerspective' in testElement.style ||\n\t\t\t\t\t\t\t\t'OPerspective' in testElement.style ||\n\t\t\t\t\t\t\t\t'perspective' in testElement.style;\n\n\t\tfeatures.transforms2d = 'WebkitTransform' in testElement.style ||\n\t\t\t\t\t\t\t\t'MozTransform' in testElement.style ||\n\t\t\t\t\t\t\t\t'msTransform' in testElement.style ||\n\t\t\t\t\t\t\t\t'OTransform' in testElement.style ||\n\t\t\t\t\t\t\t\t'transform' in testElement.style;\n\n\t\tfeatures.requestAnimationFrameMethod = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n\t\tfeatures.requestAnimationFrame = typeof features.requestAnimationFrameMethod === 'function';\n\n\t\tfeatures.canvas = !!document.createElement( 'canvas' ).getContext;\n\n\t\t// Transitions in the overview are disabled in desktop and\n\t\t// Safari due to lag\n\t\tfeatures.overviewTransitions = !/Version\\/[\\d\\.]+.*Safari/.test( UA );\n\n\t\t// Flags if we should use zoom instead of transform to scale\n\t\t// up slides. Zoom produces crisper results but has a lot of\n\t\t// xbrowser quirks so we only use it in whitelsited browsers.\n\t\tfeatures.zoom = 'zoom' in testElement.style && !isMobileDevice &&\n\t\t\t\t\t\t( isChrome || /Version\\/[\\d\\.]+.*Safari/.test( UA ) );\n\n\t}\n\n /**\n * Loads the dependencies of reveal.js. Dependencies are\n * defined via the configuration option 'dependencies'\n * and will be loaded prior to starting/binding reveal.js.\n * Some dependencies may have an 'async' flag, if so they\n * will load after reveal.js has been started up.\n */\n\tfunction load() {\n\n\t\tvar scripts = [],\n\t\t\tscriptsAsync = [],\n\t\t\tscriptsToPreload = 0;\n\n\t\t// Called once synchronous scripts finish loading\n\t\tfunction proceed() {\n\t\t\tif( scriptsAsync.length ) {\n\t\t\t\t// Load asynchronous scripts\n\t\t\t\thead.js.apply( null, scriptsAsync );\n\t\t\t}\n\n\t\t\tstart();\n\t\t}\n\n\t\tfunction loadScript( s ) {\n\t\t\thead.ready( s.src.match( /([\\w\\d_\\-]*)\\.?js$|[^\\\\\\/]*$/i )[0], function() {\n\t\t\t\t// Extension may contain callback functions\n\t\t\t\tif( typeof s.callback === 'function' ) {\n\t\t\t\t\ts.callback.apply( this );\n\t\t\t\t}\n\n\t\t\t\tif( --scriptsToPreload === 0 ) {\n\t\t\t\t\tproceed();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tfor( var i = 0, len = config.dependencies.length; i < len; i++ ) {\n\t\t\tvar s = config.dependencies[i];\n\n\t\t\t// Load if there's no condition or the condition is truthy\n\t\t\tif( !s.condition || s.condition() ) {\n\t\t\t\tif( s.async ) {\n\t\t\t\t\tscriptsAsync.push( s.src );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tscripts.push( s.src );\n\t\t\t\t}\n\n\t\t\t\tloadScript( s );\n\t\t\t}\n\t\t}\n\n\t\tif( scripts.length ) {\n\t\t\tscriptsToPreload = scripts.length;\n\n\t\t\t// Load synchronous scripts\n\t\t\thead.js.apply( null, scripts );\n\t\t}\n\t\telse {\n\t\t\tproceed();\n\t\t}\n\n\t}\n\n\t/**\n\t * Starts up reveal.js by binding input events and navigating\n\t * to the current URL deeplink if there is one.\n\t */\n\tfunction start() {\n\n\t\t// Make sure we've got all the DOM elements we need\n\t\tsetupDOM();\n\n\t\t// Listen to messages posted to this window\n\t\tsetupPostMessage();\n\n\t\t// Prevent the slides from being scrolled out of view\n\t\tsetupScrollPrevention();\n\n\t\t// Resets all vertical slides so that only the first is visible\n\t\tresetVerticalSlides();\n\n\t\t// Updates the presentation to match the current configuration values\n\t\tconfigure();\n\n\t\t// Read the initial hash\n\t\treadURL();\n\n\t\t// Update all backgrounds\n\t\tupdateBackground( true );\n\n\t\t// Notify listeners that the presentation is ready but use a 1ms\n\t\t// timeout to ensure it's not fired synchronously after #initialize()\n\t\tsetTimeout( function() {\n\t\t\t// Enable transitions now that we're loaded\n\t\t\tdom.slides.classList.remove( 'no-transition' );\n\n\t\t\tloaded = true;\n\n\t\t\tdom.wrapper.classList.add( 'ready' );\n\n\t\t\tdispatchEvent( 'ready', {\n\t\t\t\t'indexh': indexh,\n\t\t\t\t'indexv': indexv,\n\t\t\t\t'currentSlide': currentSlide\n\t\t\t} );\n\t\t}, 1 );\n\n\t\t// Special setup and config is required when printing to PDF\n\t\tif( isPrintingPDF() ) {\n\t\t\tremoveEventListeners();\n\n\t\t\t// The document needs to have loaded for the PDF layout\n\t\t\t// measurements to be accurate\n\t\t\tif( document.readyState === 'complete' ) {\n\t\t\t\tsetupPDF();\n\t\t\t}\n\t\t\telse {\n\t\t\t\twindow.addEventListener( 'load', setupPDF );\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Finds and stores references to DOM elements which are\n\t * required by the presentation. If a required element is\n\t * not found, it is created.\n\t */\n\tfunction setupDOM() {\n\n\t\t// Prevent transitions while we're loading\n\t\tdom.slides.classList.add( 'no-transition' );\n\n\t\t// Background element\n\t\tdom.background = createSingletonNode( dom.wrapper, 'div', 'backgrounds', null );\n\n\t\t// Progress bar\n\t\tdom.progress = createSingletonNode( dom.wrapper, 'div', 'progress', '<span></span>' );\n\t\tdom.progressbar = dom.progress.querySelector( 'span' );\n\n\t\t// Arrow controls\n\t\tcreateSingletonNode( dom.wrapper, 'aside', 'controls',\n\t\t\t'<button class=\"navigate-left\" aria-label=\"previous slide\"></button>' +\n\t\t\t'<button class=\"navigate-right\" aria-label=\"next slide\"></button>' +\n\t\t\t'<button class=\"navigate-up\" aria-label=\"above slide\"></button>' +\n\t\t\t'<button class=\"navigate-down\" aria-label=\"below slide\"></button>' );\n\n\t\t// Slide number\n\t\tdom.slideNumber = createSingletonNode( dom.wrapper, 'div', 'slide-number', '' );\n\n\t\t// Element containing notes that are visible to the audience\n\t\tdom.speakerNotes = createSingletonNode( dom.wrapper, 'div', 'speaker-notes', null );\n\t\tdom.speakerNotes.setAttribute( 'data-prevent-swipe', '' );\n\t\tdom.speakerNotes.setAttribute( 'tabindex', '0' );\n\n\t\t// Overlay graphic which is displayed during the paused mode\n\t\tcreateSingletonNode( dom.wrapper, 'div', 'pause-overlay', null );\n\n\t\t// Cache references to elements\n\t\tdom.controls = document.querySelector( '.reveal .controls' );\n\n\t\tdom.wrapper.setAttribute( 'role', 'application' );\n\n\t\t// There can be multiple instances of controls throughout the page\n\t\tdom.controlsLeft = toArray( document.querySelectorAll( '.navigate-left' ) );\n\t\tdom.controlsRight = toArray( document.querySelectorAll( '.navigate-right' ) );\n\t\tdom.controlsUp = toArray( document.querySelectorAll( '.navigate-up' ) );\n\t\tdom.controlsDown = toArray( document.querySelectorAll( '.navigate-down' ) );\n\t\tdom.controlsPrev = toArray( document.querySelectorAll( '.navigate-prev' ) );\n\t\tdom.controlsNext = toArray( document.querySelectorAll( '.navigate-next' ) );\n\n\t\tdom.statusDiv = createStatusDiv();\n\t}\n\n\t/**\n\t * Creates a hidden div with role aria-live to announce the\n\t * current slide content. Hide the div off-screen to make it\n\t * available only to Assistive Technologies.\n\t *\n\t * @return {HTMLElement}\n\t */\n\tfunction createStatusDiv() {\n\n\t\tvar statusDiv = document.getElementById( 'aria-status-div' );\n\t\tif( !statusDiv ) {\n\t\t\tstatusDiv = document.createElement( 'div' );\n\t\t\tstatusDiv.style.position = 'absolute';\n\t\t\tstatusDiv.style.height = '1px';\n\t\t\tstatusDiv.style.width = '1px';\n\t\t\tstatusDiv.style.overflow = 'hidden';\n\t\t\tstatusDiv.style.clip = 'rect( 1px, 1px, 1px, 1px )';\n\t\t\tstatusDiv.setAttribute( 'id', 'aria-status-div' );\n\t\t\tstatusDiv.setAttribute( 'aria-live', 'polite' );\n\t\t\tstatusDiv.setAttribute( 'aria-atomic','true' );\n\t\t\tdom.wrapper.appendChild( statusDiv );\n\t\t}\n\t\treturn statusDiv;\n\n\t}\n\n\t/**\n\t * Converts the given HTML element into a string of text\n\t * that can be announced to a screen reader. Hidden\n\t * elements are excluded.\n\t */\n\tfunction getStatusText( node ) {\n\n\t\tvar text = '';\n\n\t\t// Text node\n\t\tif( node.nodeType === 3 ) {\n\t\t\ttext += node.textContent;\n\t\t}\n\t\t// Element node\n\t\telse if( node.nodeType === 1 ) {\n\n\t\t\tvar isAriaHidden = node.getAttribute( 'aria-hidden' );\n\t\t\tvar isDisplayHidden = window.getComputedStyle( node )['display'] === 'none';\n\t\t\tif( isAriaHidden !== 'true' && !isDisplayHidden ) {\n\n\t\t\t\ttoArray( node.childNodes ).forEach( function( child ) {\n\t\t\t\t\ttext += getStatusText( child );\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn text;\n\n\t}\n\n\t/**\n\t * Configures the presentation for printing to a static\n\t * PDF.\n\t */\n\tfunction setupPDF() {\n\n\t\tvar slideSize = getComputedSlideSize( window.innerWidth, window.innerHeight );\n\n\t\t// Dimensions of the PDF pages\n\t\tvar pageWidth = Math.floor( slideSize.width * ( 1 + config.margin ) ),\n\t\t\tpageHeight = Math.floor( slideSize.height * ( 1 + config.margin ) );\n\n\t\t// Dimensions of slides within the pages\n\t\tvar slideWidth = slideSize.width,\n\t\t\tslideHeight = slideSize.height;\n\n\t\t// Let the browser know what page size we want to print\n\t\tinjectStyleSheet( '@page{size:'+ pageWidth +'px '+ pageHeight +'px; margin: 0px;}' );\n\n\t\t// Limit the size of certain elements to the dimensions of the slide\n\t\tinjectStyleSheet( '.reveal section>img, .reveal section>video, .reveal section>iframe{max-width: '+ slideWidth +'px; max-height:'+ slideHeight +'px}' );\n\n\t\tdocument.body.classList.add( 'print-pdf' );\n\t\tdocument.body.style.width = pageWidth + 'px';\n\t\tdocument.body.style.height = pageHeight + 'px';\n\n\t\t// Make sure stretch elements fit on slide\n\t\tlayoutSlideContents( slideWidth, slideHeight );\n\n\t\t// Add each slide's index as attributes on itself, we need these\n\t\t// indices to generate slide numbers below\n\t\ttoArray( dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ).forEach( function( hslide, h ) {\n\t\t\thslide.setAttribute( 'data-index-h', h );\n\n\t\t\tif( hslide.classList.contains( 'stack' ) ) {\n\t\t\t\ttoArray( hslide.querySelectorAll( 'section' ) ).forEach( function( vslide, v ) {\n\t\t\t\t\tvslide.setAttribute( 'data-index-h', h );\n\t\t\t\t\tvslide.setAttribute( 'data-index-v', v );\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\n\t\t// Slide and slide background layout\n\t\ttoArray( dom.wrapper.querySelectorAll( SLIDES_SELECTOR ) ).forEach( function( slide ) {\n\n\t\t\t// Vertical stacks are not centred since their section\n\t\t\t// children will be\n\t\t\tif( slide.classList.contains( 'stack' ) === false ) {\n\t\t\t\t// Center the slide inside of the page, giving the slide some margin\n\t\t\t\tvar left = ( pageWidth - slideWidth ) / 2,\n\t\t\t\t\ttop = ( pageHeight - slideHeight ) / 2;\n\n\t\t\t\tvar contentHeight = slide.scrollHeight;\n\t\t\t\tvar numberOfPages = Math.max( Math.ceil( contentHeight / pageHeight ), 1 );\n\n\t\t\t\t// Adhere to configured pages per slide limit\n\t\t\t\tnumberOfPages = Math.min( numberOfPages, config.pdfMaxPagesPerSlide );\n\n\t\t\t\t// Center slides vertically\n\t\t\t\tif( numberOfPages === 1 && config.center || slide.classList.contains( 'center' ) ) {\n\t\t\t\t\ttop = Math.max( ( pageHeight - contentHeight ) / 2, 0 );\n\t\t\t\t}\n\n\t\t\t\t// Wrap the slide in a page element and hide its overflow\n\t\t\t\t// so that no page ever flows onto another\n\t\t\t\tvar page = document.createElement( 'div' );\n\t\t\t\tpage.className = 'pdf-page';\n\t\t\t\tpage.style.height = ( ( pageHeight + config.pdfPageHeightOffset ) * numberOfPages ) + 'px';\n\t\t\t\tslide.parentNode.insertBefore( page, slide );\n\t\t\t\tpage.appendChild( slide );\n\n\t\t\t\t// Position the slide inside of the page\n\t\t\t\tslide.style.left = left + 'px';\n\t\t\t\tslide.style.top = top + 'px';\n\t\t\t\tslide.style.width = slideWidth + 'px';\n\n\t\t\t\tif( slide.slideBackgroundElement ) {\n\t\t\t\t\tpage.insertBefore( slide.slideBackgroundElement, slide );\n\t\t\t\t}\n\n\t\t\t\t// Inject notes if `showNotes` is enabled\n\t\t\t\tif( config.showNotes ) {\n\n\t\t\t\t\t// Are there notes for this slide?\n\t\t\t\t\tvar notes = getSlideNotes( slide );\n\t\t\t\t\tif( notes ) {\n\n\t\t\t\t\t\tvar notesSpacing = 8;\n\t\t\t\t\t\tvar notesLayout = typeof config.showNotes === 'string' ? config.showNotes : 'inline';\n\t\t\t\t\t\tvar notesElement = document.createElement( 'div' );\n\t\t\t\t\t\tnotesElement.classList.add( 'speaker-notes' );\n\t\t\t\t\t\tnotesElement.classList.add( 'speaker-notes-pdf' );\n\t\t\t\t\t\tnotesElement.setAttribute( 'data-layout', notesLayout );\n\t\t\t\t\t\tnotesElement.innerHTML = notes;\n\n\t\t\t\t\t\tif( notesLayout === 'separate-page' ) {\n\t\t\t\t\t\t\tpage.parentNode.insertBefore( notesElement, page.nextSibling );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tnotesElement.style.left = notesSpacing + 'px';\n\t\t\t\t\t\t\tnotesElement.style.bottom = notesSpacing + 'px';\n\t\t\t\t\t\t\tnotesElement.style.width = ( pageWidth - notesSpacing*2 ) + 'px';\n\t\t\t\t\t\t\tpage.appendChild( notesElement );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t// Inject slide numbers if `slideNumbers` are enabled\n\t\t\t\tif( config.slideNumber && /all|print/i.test( config.showSlideNumber ) ) {\n\t\t\t\t\tvar slideNumberH = parseInt( slide.getAttribute( 'data-index-h' ), 10 ) + 1,\n\t\t\t\t\t\tslideNumberV = parseInt( slide.getAttribute( 'data-index-v' ), 10 ) + 1;\n\n\t\t\t\t\tvar numberElement = document.createElement( 'div' );\n\t\t\t\t\tnumberElement.classList.add( 'slide-number' );\n\t\t\t\t\tnumberElement.classList.add( 'slide-number-pdf' );\n\t\t\t\t\tnumberElement.innerHTML = formatSlideNumber( slideNumberH, '.', slideNumberV );\n\t\t\t\t\tpage.appendChild( numberElement );\n\t\t\t\t}\n\t\t\t}\n\n\t\t} );\n\n\t\t// Show all fragments\n\t\ttoArray( dom.wrapper.querySelectorAll( SLIDES_SELECTOR + ' .fragment' ) ).forEach( function( fragment ) {\n\t\t\tfragment.classList.add( 'visible' );\n\t\t} );\n\n\t\t// Notify subscribers that the PDF layout is good to go\n\t\tdispatchEvent( 'pdf-ready' );\n\n\t}\n\n\t/**\n\t * This is an unfortunate necessity. Some actions – such as\n\t * an input field being focused in an iframe or using the\n\t * keyboard to expand text selection beyond the bounds of\n\t * a slide – can trigger our content to be pushed out of view.\n\t * This scrolling can not be prevented by hiding overflow in\n\t * CSS (we already do) so we have to resort to repeatedly\n\t * checking if the slides have been offset :(\n\t */\n\tfunction setupScrollPrevention() {\n\n\t\tsetInterval( function() {\n\t\t\tif( dom.wrapper.scrollTop !== 0 || dom.wrapper.scrollLeft !== 0 ) {\n\t\t\t\tdom.wrapper.scrollTop = 0;\n\t\t\t\tdom.wrapper.scrollLeft = 0;\n\t\t\t}\n\t\t}, 1000 );\n\n\t}\n\n\t/**\n\t * Creates an HTML element and returns a reference to it.\n\t * If the element already exists the existing instance will\n\t * be returned.\n\t *\n\t * @param {HTMLElement} container\n\t * @param {string} tagname\n\t * @param {string} classname\n\t * @param {string} innerHTML\n\t *\n\t * @return {HTMLElement}\n\t */\n\tfunction createSingletonNode( container, tagname, classname, innerHTML ) {\n\n\t\t// Find all nodes matching the description\n\t\tvar nodes = container.querySelectorAll( '.' + classname );\n\n\t\t// Check all matches to find one which is a direct child of\n\t\t// the specified container\n\t\tfor( var i = 0; i < nodes.length; i++ ) {\n\t\t\tvar testNode = nodes[i];\n\t\t\tif( testNode.parentNode === container ) {\n\t\t\t\treturn testNode;\n\t\t\t}\n\t\t}\n\n\t\t// If no node was found, create it now\n\t\tvar node = document.createElement( tagname );\n\t\tnode.classList.add( classname );\n\t\tif( typeof innerHTML === 'string' ) {\n\t\t\tnode.innerHTML = innerHTML;\n\t\t}\n\t\tcontainer.appendChild( node );\n\n\t\treturn node;\n\n\t}\n\n\t/**\n\t * Creates the slide background elements and appends them\n\t * to the background container. One element is created per\n\t * slide no matter if the given slide has visible background.\n\t */\n\tfunction createBackgrounds() {\n\n\t\tvar printMode = isPrintingPDF();\n\n\t\t// Clear prior backgrounds\n\t\tdom.background.innerHTML = '';\n\t\tdom.background.classList.add( 'no-transition' );\n\n\t\t// Iterate over all horizontal slides\n\t\ttoArray( dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ).forEach( function( slideh ) {\n\n\t\t\tvar backgroundStack = createBackground( slideh, dom.background );\n\n\t\t\t// Iterate over all vertical slides\n\t\t\ttoArray( slideh.querySelectorAll( 'section' ) ).forEach( function( slidev ) {\n\n\t\t\t\tcreateBackground( slidev, backgroundStack );\n\n\t\t\t\tbackgroundStack.classList.add( 'stack' );\n\n\t\t\t} );\n\n\t\t} );\n\n\t\t// Add parallax background if specified\n\t\tif( config.parallaxBackgroundImage ) {\n\n\t\t\tdom.background.style.backgroundImage = 'url(\"' + config.parallaxBackgroundImage + '\")';\n\t\t\tdom.background.style.backgroundSize = config.parallaxBackgroundSize;\n\n\t\t\t// Make sure the below properties are set on the element - these properties are\n\t\t\t// needed for proper transitions to be set on the element via CSS. To remove\n\t\t\t// annoying background slide-in effect when the presentation starts, apply\n\t\t\t// these properties after short time delay\n\t\t\tsetTimeout( function() {\n\t\t\t\tdom.wrapper.classList.add( 'has-parallax-background' );\n\t\t\t}, 1 );\n\n\t\t}\n\t\telse {\n\n\t\t\tdom.background.style.backgroundImage = '';\n\t\t\tdom.wrapper.classList.remove( 'has-parallax-background' );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Creates a background for the given slide.\n\t *\n\t * @param {HTMLElement} slide\n\t * @param {HTMLElement} container The element that the background\n\t * should be appended to\n\t * @return {HTMLElement} New background div\n\t */\n\tfunction createBackground( slide, container ) {\n\n\t\tvar data = {\n\t\t\tbackground: slide.getAttribute( 'data-background' ),\n\t\t\tbackgroundSize: slide.getAttribute( 'data-background-size' ),\n\t\t\tbackgroundImage: slide.getAttribute( 'data-background-image' ),\n\t\t\tbackgroundVideo: slide.getAttribute( 'data-background-video' ),\n\t\t\tbackgroundIframe: slide.getAttribute( 'data-background-iframe' ),\n\t\t\tbackgroundColor: slide.getAttribute( 'data-background-color' ),\n\t\t\tbackgroundRepeat: slide.getAttribute( 'data-background-repeat' ),\n\t\t\tbackgroundPosition: slide.getAttribute( 'data-background-position' ),\n\t\t\tbackgroundTransition: slide.getAttribute( 'data-background-transition' )\n\t\t};\n\n\t\tvar element = document.createElement( 'div' );\n\n\t\t// Carry over custom classes from the slide to the background\n\t\telement.className = 'slide-background ' + slide.className.replace( /present|past|future/, '' );\n\n\t\tif( data.background ) {\n\t\t\t// Auto-wrap image urls in url(...)\n\t\t\tif( /^(http|file|\\/\\/)/gi.test( data.background ) || /\\.(svg|png|jpg|jpeg|gif|bmp)([?#]|$)/gi.test( data.background ) ) {\n\t\t\t\tslide.setAttribute( 'data-background-image', data.background );\n\t\t\t}\n\t\t\telse {\n\t\t\t\telement.style.background = data.background;\n\t\t\t}\n\t\t}\n\n\t\t// Create a hash for this combination of background settings.\n\t\t// This is used to determine when two slide backgrounds are\n\t\t// the same.\n\t\tif( data.background || data.backgroundColor || data.backgroundImage || data.backgroundVideo || data.backgroundIframe ) {\n\t\t\telement.setAttribute( 'data-background-hash', data.background +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata.backgroundSize +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata.backgroundImage +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata.backgroundVideo +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata.backgroundIframe +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata.backgroundColor +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata.backgroundRepeat +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata.backgroundPosition +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdata.backgroundTransition );\n\t\t}\n\n\t\t// Additional and optional background properties\n\t\tif( data.backgroundSize ) element.style.backgroundSize = data.backgroundSize;\n\t\tif( data.backgroundSize ) element.setAttribute( 'data-background-size', data.backgroundSize );\n\t\tif( data.backgroundColor ) element.style.backgroundColor = data.backgroundColor;\n\t\tif( data.backgroundRepeat ) element.style.backgroundRepeat = data.backgroundRepeat;\n\t\tif( data.backgroundPosition ) element.style.backgroundPosition = data.backgroundPosition;\n\t\tif( data.backgroundTransition ) element.setAttribute( 'data-background-transition', data.backgroundTransition );\n\n\t\tcontainer.appendChild( element );\n\n\t\t// If backgrounds are being recreated, clear old classes\n\t\tslide.classList.remove( 'has-dark-background' );\n\t\tslide.classList.remove( 'has-light-background' );\n\n\t\tslide.slideBackgroundElement = element;\n\n\t\t// If this slide has a background color, add a class that\n\t\t// signals if it is light or dark. If the slide has no background\n\t\t// color, no class will be set\n\t\tvar computedBackgroundStyle = window.getComputedStyle( element );\n\t\tif( computedBackgroundStyle && computedBackgroundStyle.backgroundColor ) {\n\t\t\tvar rgb = colorToRgb( computedBackgroundStyle.backgroundColor );\n\n\t\t\t// Ignore fully transparent backgrounds. Some browsers return\n\t\t\t// rgba(0,0,0,0) when reading the computed background color of\n\t\t\t// an element with no background\n\t\t\tif( rgb && rgb.a !== 0 ) {\n\t\t\t\tif( colorBrightness( computedBackgroundStyle.backgroundColor ) < 128 ) {\n\t\t\t\t\tslide.classList.add( 'has-dark-background' );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tslide.classList.add( 'has-light-background' );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn element;\n\n\t}\n\n\t/**\n\t * Registers a listener to postMessage events, this makes it\n\t * possible to call all reveal.js API methods from another\n\t * window. For example:\n\t *\n\t * revealWindow.postMessage( JSON.stringify({\n\t * method: 'slide',\n\t * args: [ 2 ]\n\t * }), '*' );\n\t */\n\tfunction setupPostMessage() {\n\n\t\tif( config.postMessage ) {\n\t\t\twindow.addEventListener( 'message', function ( event ) {\n\t\t\t\tvar data = event.data;\n\n\t\t\t\t// Make sure we're dealing with JSON\n\t\t\t\tif( typeof data === 'string' && data.charAt( 0 ) === '{' && data.charAt( data.length - 1 ) === '}' ) {\n\t\t\t\t\tdata = JSON.parse( data );\n\n\t\t\t\t\t// Check if the requested method can be found\n\t\t\t\t\tif( data.method && typeof Reveal[data.method] === 'function' ) {\n\t\t\t\t\t\tReveal[data.method].apply( Reveal, data.args );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, false );\n\t\t}\n\n\t}\n\n\t/**\n\t * Applies the configuration settings from the config\n\t * object. May be called multiple times.\n\t *\n\t * @param {object} options\n\t */\n\tfunction configure( options ) {\n\n\t\tvar numberOfSlides = dom.wrapper.querySelectorAll( SLIDES_SELECTOR ).length;\n\n\t\tdom.wrapper.classList.remove( config.transition );\n\n\t\t// New config options may be passed when this method\n\t\t// is invoked through the API after initialization\n\t\tif( typeof options === 'object' ) extend( config, options );\n\n\t\t// Force linear transition based on browser capabilities\n\t\tif( features.transforms3d === false ) config.transition = 'linear';\n\n\t\tdom.wrapper.classList.add( config.transition );\n\n\t\tdom.wrapper.setAttribute( 'data-transition-speed', config.transitionSpeed );\n\t\tdom.wrapper.setAttribute( 'data-background-transition', config.backgroundTransition );\n\n\t\tdom.controls.style.display = config.controls ? 'block' : 'none';\n\t\tdom.progress.style.display = config.progress ? 'block' : 'none';\n\n\t\tif( config.shuffle ) {\n\t\t\tshuffle();\n\t\t}\n\n\t\tif( config.rtl ) {\n\t\t\tdom.wrapper.classList.add( 'rtl' );\n\t\t}\n\t\telse {\n\t\t\tdom.wrapper.classList.remove( 'rtl' );\n\t\t}\n\n\t\tif( config.center ) {\n\t\t\tdom.wrapper.classList.add( 'center' );\n\t\t}\n\t\telse {\n\t\t\tdom.wrapper.classList.remove( 'center' );\n\t\t}\n\n\t\t// Exit the paused mode if it was configured off\n\t\tif( config.pause === false ) {\n\t\t\tresume();\n\t\t}\n\n\t\tif( config.showNotes ) {\n\t\t\tdom.speakerNotes.classList.add( 'visible' );\n\t\t\tdom.speakerNotes.setAttribute( 'data-layout', typeof config.showNotes === 'string' ? config.showNotes : 'inline' );\n\t\t}\n\t\telse {\n\t\t\tdom.speakerNotes.classList.remove( 'visible' );\n\t\t}\n\n\t\tif( config.mouseWheel ) {\n\t\t\tdocument.addEventListener( 'DOMMouseScroll', onDocumentMouseScroll, false ); // FF\n\t\t\tdocument.addEventListener( 'mousewheel', onDocumentMouseScroll, false );\n\t\t}\n\t\telse {\n\t\t\tdocument.removeEventListener( 'DOMMouseScroll', onDocumentMouseScroll, false ); // FF\n\t\t\tdocument.removeEventListener( 'mousewheel', onDocumentMouseScroll, false );\n\t\t}\n\n\t\t// Rolling 3D links\n\t\tif( config.rollingLinks ) {\n\t\t\tenableRollingLinks();\n\t\t}\n\t\telse {\n\t\t\tdisableRollingLinks();\n\t\t}\n\n\t\t// Iframe link previews\n\t\tif( config.previewLinks ) {\n\t\t\tenablePreviewLinks();\n\t\t\tdisablePreviewLinks( '[data-preview-link=false]' );\n\t\t}\n\t\telse {\n\t\t\tdisablePreviewLinks();\n\t\t\tenablePreviewLinks( '[data-preview-link]:not([data-preview-link=false])' );\n\t\t}\n\n\t\t// Remove existing auto-slide controls\n\t\tif( autoSlidePlayer ) {\n\t\t\tautoSlidePlayer.destroy();\n\t\t\tautoSlidePlayer = null;\n\t\t}\n\n\t\t// Generate auto-slide controls if needed\n\t\tif( numberOfSlides > 1 && config.autoSlide && config.autoSlideStoppable && features.canvas && features.requestAnimationFrame ) {\n\t\t\tautoSlidePlayer = new Playback( dom.wrapper, function() {\n\t\t\t\treturn Math.min( Math.max( ( Date.now() - autoSlideStartTime ) / autoSlide, 0 ), 1 );\n\t\t\t} );\n\n\t\t\tautoSlidePlayer.on( 'click', onAutoSlidePlayerClick );\n\t\t\tautoSlidePaused = false;\n\t\t}\n\n\t\t// When fragments are turned off they should be visible\n\t\tif( config.fragments === false ) {\n\t\t\ttoArray( dom.slides.querySelectorAll( '.fragment' ) ).forEach( function( element ) {\n\t\t\t\telement.classList.add( 'visible' );\n\t\t\t\telement.classList.remove( 'current-fragment' );\n\t\t\t} );\n\t\t}\n\n\t\t// Slide numbers\n\t\tvar slideNumberDisplay = 'none';\n\t\tif( config.slideNumber && !isPrintingPDF() ) {\n\t\t\tif( config.showSlideNumber === 'all' ) {\n\t\t\t\tslideNumberDisplay = 'block';\n\t\t\t}\n\t\t\telse if( config.showSlideNumber === 'speaker' && isSpeakerNotes() ) {\n\t\t\t\tslideNumberDisplay = 'block';\n\t\t\t}\n\t\t}\n\n\t\tdom.slideNumber.style.display = slideNumberDisplay;\n\n\t\tsync();\n\n\t}\n\n\t/**\n\t * Binds all event listeners.\n\t */\n\tfunction addEventListeners() {\n\n\t\teventsAreBound = true;\n\n\t\twindow.addEventListener( 'hashchange', onWindowHashChange, false );\n\t\twindow.addEventListener( 'resize', onWindowResize, false );\n\n\t\tif( config.touch ) {\n\t\t\tdom.wrapper.addEventListener( 'touchstart', onTouchStart, false );\n\t\t\tdom.wrapper.addEventListener( 'touchmove', onTouchMove, false );\n\t\t\tdom.wrapper.addEventListener( 'touchend', onTouchEnd, false );\n\n\t\t\t// Support pointer-style touch interaction as well\n\t\t\tif( window.navigator.pointerEnabled ) {\n\t\t\t\t// IE 11 uses un-prefixed version of pointer events\n\t\t\t\tdom.wrapper.addEventListener( 'pointerdown', onPointerDown, false );\n\t\t\t\tdom.wrapper.addEventListener( 'pointermove', onPointerMove, false );\n\t\t\t\tdom.wrapper.addEventListener( 'pointerup', onPointerUp, false );\n\t\t\t}\n\t\t\telse if( window.navigator.msPointerEnabled ) {\n\t\t\t\t// IE 10 uses prefixed version of pointer events\n\t\t\t\tdom.wrapper.addEventListener( 'MSPointerDown', onPointerDown, false );\n\t\t\t\tdom.wrapper.addEventListener( 'MSPointerMove', onPointerMove, false );\n\t\t\t\tdom.wrapper.addEventListener( 'MSPointerUp', onPointerUp, false );\n\t\t\t}\n\t\t}\n\n\t\tif( config.keyboard ) {\n\t\t\tdocument.addEventListener( 'keydown', onDocumentKeyDown, false );\n\t\t\tdocument.addEventListener( 'keypress', onDocumentKeyPress, false );\n\t\t}\n\n\t\tif( config.progress && dom.progress ) {\n\t\t\tdom.progress.addEventListener( 'click', onProgressClicked, false );\n\t\t}\n\n\t\tif( config.focusBodyOnPageVisibilityChange ) {\n\t\t\tvar visibilityChange;\n\n\t\t\tif( 'hidden' in document ) {\n\t\t\t\tvisibilityChange = 'visibilitychange';\n\t\t\t}\n\t\t\telse if( 'msHidden' in document ) {\n\t\t\t\tvisibilityChange = 'msvisibilitychange';\n\t\t\t}\n\t\t\telse if( 'webkitHidden' in document ) {\n\t\t\t\tvisibilityChange = 'webkitvisibilitychange';\n\t\t\t}\n\n\t\t\tif( visibilityChange ) {\n\t\t\t\tdocument.addEventListener( visibilityChange, onPageVisibilityChange, false );\n\t\t\t}\n\t\t}\n\n\t\t// Listen to both touch and click events, in case the device\n\t\t// supports both\n\t\tvar pointerEvents = [ 'touchstart', 'click' ];\n\n\t\t// Only support touch for Android, fixes double navigations in\n\t\t// stock browser\n\t\tif( UA.match( /android/gi ) ) {\n\t\t\tpointerEvents = [ 'touchstart' ];\n\t\t}\n\n\t\tpointerEvents.forEach( function( eventName ) {\n\t\t\tdom.controlsLeft.forEach( function( el ) { el.addEventListener( eventName, onNavigateLeftClicked, false ); } );\n\t\t\tdom.controlsRight.forEach( function( el ) { el.addEventListener( eventName, onNavigateRightClicked, false ); } );\n\t\t\tdom.controlsUp.forEach( function( el ) { el.addEventListener( eventName, onNavigateUpClicked, false ); } );\n\t\t\tdom.controlsDown.forEach( function( el ) { el.addEventListener( eventName, onNavigateDownClicked, false ); } );\n\t\t\tdom.controlsPrev.forEach( function( el ) { el.addEventListener( eventName, onNavigatePrevClicked, false ); } );\n\t\t\tdom.controlsNext.forEach( function( el ) { el.addEventListener( eventName, onNavigateNextClicked, false ); } );\n\t\t} );\n\n\t}\n\n\t/**\n\t * Unbinds all event listeners.\n\t */\n\tfunction removeEventListeners() {\n\n\t\teventsAreBound = false;\n\n\t\tdocument.removeEventListener( 'keydown', onDocumentKeyDown, false );\n\t\tdocument.removeEventListener( 'keypress', onDocumentKeyPress, false );\n\t\twindow.removeEventListener( 'hashchange', onWindowHashChange, false );\n\t\twindow.removeEventListener( 'resize', onWindowResize, false );\n\n\t\tdom.wrapper.removeEventListener( 'touchstart', onTouchStart, false );\n\t\tdom.wrapper.removeEventListener( 'touchmove', onTouchMove, false );\n\t\tdom.wrapper.removeEventListener( 'touchend', onTouchEnd, false );\n\n\t\t// IE11\n\t\tif( window.navigator.pointerEnabled ) {\n\t\t\tdom.wrapper.removeEventListener( 'pointerdown', onPointerDown, false );\n\t\t\tdom.wrapper.removeEventListener( 'pointermove', onPointerMove, false );\n\t\t\tdom.wrapper.removeEventListener( 'pointerup', onPointerUp, false );\n\t\t}\n\t\t// IE10\n\t\telse if( window.navigator.msPointerEnabled ) {\n\t\t\tdom.wrapper.removeEventListener( 'MSPointerDown', onPointerDown, false );\n\t\t\tdom.wrapper.removeEventListener( 'MSPointerMove', onPointerMove, false );\n\t\t\tdom.wrapper.removeEventListener( 'MSPointerUp', onPointerUp, false );\n\t\t}\n\n\t\tif ( config.progress && dom.progress ) {\n\t\t\tdom.progress.removeEventListener( 'click', onProgressClicked, false );\n\t\t}\n\n\t\t[ 'touchstart', 'click' ].forEach( function( eventName ) {\n\t\t\tdom.controlsLeft.forEach( function( el ) { el.removeEventListener( eventName, onNavigateLeftClicked, false ); } );\n\t\t\tdom.controlsRight.forEach( function( el ) { el.removeEventListener( eventName, onNavigateRightClicked, false ); } );\n\t\t\tdom.controlsUp.forEach( function( el ) { el.removeEventListener( eventName, onNavigateUpClicked, false ); } );\n\t\t\tdom.controlsDown.forEach( function( el ) { el.removeEventListener( eventName, onNavigateDownClicked, false ); } );\n\t\t\tdom.controlsPrev.forEach( function( el ) { el.removeEventListener( eventName, onNavigatePrevClicked, false ); } );\n\t\t\tdom.controlsNext.forEach( function( el ) { el.removeEventListener( eventName, onNavigateNextClicked, false ); } );\n\t\t} );\n\n\t}\n\n\t/**\n\t * Extend object a with the properties of object b.\n\t * If there's a conflict, object b takes precedence.\n\t *\n\t * @param {object} a\n\t * @param {object} b\n\t */\n\tfunction extend( a, b ) {\n\n\t\tfor( var i in b ) {\n\t\t\ta[ i ] = b[ i ];\n\t\t}\n\n\t}\n\n\t/**\n\t * Converts the target object to an array.\n\t *\n\t * @param {object} o\n\t * @return {object[]}\n\t */\n\tfunction toArray( o ) {\n\n\t\treturn Array.prototype.slice.call( o );\n\n\t}\n\n\t/**\n\t * Utility for deserializing a value.\n\t *\n\t * @param {*} value\n\t * @return {*}\n\t */\n\tfunction deserialize( value ) {\n\n\t\tif( typeof value === 'string' ) {\n\t\t\tif( value === 'null' ) return null;\n\t\t\telse if( value === 'true' ) return true;\n\t\t\telse if( value === 'false' ) return false;\n\t\t\telse if( value.match( /^[\\d\\.]+$/ ) ) return parseFloat( value );\n\t\t}\n\n\t\treturn value;\n\n\t}\n\n\t/**\n\t * Measures the distance in pixels between point a\n\t * and point b.\n\t *\n\t * @param {object} a point with x/y properties\n\t * @param {object} b point with x/y properties\n\t *\n\t * @return {number}\n\t */\n\tfunction distanceBetween( a, b ) {\n\n\t\tvar dx = a.x - b.x,\n\t\t\tdy = a.y - b.y;\n\n\t\treturn Math.sqrt( dx*dx + dy*dy );\n\n\t}\n\n\t/**\n\t * Applies a CSS transform to the target element.\n\t *\n\t * @param {HTMLElement} element\n\t * @param {string} transform\n\t */\n\tfunction transformElement( element, transform ) {\n\n\t\telement.style.WebkitTransform = transform;\n\t\telement.style.MozTransform = transform;\n\t\telement.style.msTransform = transform;\n\t\telement.style.transform = transform;\n\n\t}\n\n\t/**\n\t * Applies CSS transforms to the slides container. The container\n\t * is transformed from two separate sources: layout and the overview\n\t * mode.\n\t *\n\t * @param {object} transforms\n\t */\n\tfunction transformSlides( transforms ) {\n\n\t\t// Pick up new transforms from arguments\n\t\tif( typeof transforms.layout === 'string' ) slidesTransform.layout = transforms.layout;\n\t\tif( typeof transforms.overview === 'string' ) slidesTransform.overview = transforms.overview;\n\n\t\t// Apply the transforms to the slides container\n\t\tif( slidesTransform.layout ) {\n\t\t\ttransformElement( dom.slides, slidesTransform.layout + ' ' + slidesTransform.overview );\n\t\t}\n\t\telse {\n\t\t\ttransformElement( dom.slides, slidesTransform.overview );\n\t\t}\n\n\t}\n\n\t/**\n\t * Injects the given CSS styles into the DOM.\n\t *\n\t * @param {string} value\n\t */\n\tfunction injectStyleSheet( value ) {\n\n\t\tvar tag = document.createElement( 'style' );\n\t\ttag.type = 'text/css';\n\t\tif( tag.styleSheet ) {\n\t\t\ttag.styleSheet.cssText = value;\n\t\t}\n\t\telse {\n\t\t\ttag.appendChild( document.createTextNode( value ) );\n\t\t}\n\t\tdocument.getElementsByTagName( 'head' )[0].appendChild( tag );\n\n\t}\n\n\t/**\n\t * Find the closest parent that matches the given\n\t * selector.\n\t *\n\t * @param {HTMLElement} target The child element\n\t * @param {String} selector The CSS selector to match\n\t * the parents against\n\t *\n\t * @return {HTMLElement} The matched parent or null\n\t * if no matching parent was found\n\t */\n\tfunction closestParent( target, selector ) {\n\n\t\tvar parent = target.parentNode;\n\n\t\twhile( parent ) {\n\n\t\t\t// There's some overhead doing this each time, we don't\n\t\t\t// want to rewrite the element prototype but should still\n\t\t\t// be enough to feature detect once at startup...\n\t\t\tvar matchesMethod = parent.matches || parent.matchesSelector || parent.msMatchesSelector;\n\n\t\t\t// If we find a match, we're all set\n\t\t\tif( matchesMethod && matchesMethod.call( parent, selector ) ) {\n\t\t\t\treturn parent;\n\t\t\t}\n\n\t\t\t// Keep searching\n\t\t\tparent = parent.parentNode;\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\t/**\n\t * Converts various color input formats to an {r:0,g:0,b:0} object.\n\t *\n\t * @param {string} color The string representation of a color\n\t * @example\n\t * colorToRgb('#000');\n\t * @example\n\t * colorToRgb('#000000');\n\t * @example\n\t * colorToRgb('rgb(0,0,0)');\n\t * @example\n\t * colorToRgb('rgba(0,0,0)');\n\t *\n\t * @return {{r: number, g: number, b: number, [a]: number}|null}\n\t */\n\tfunction colorToRgb( color ) {\n\n\t\tvar hex3 = color.match( /^#([0-9a-f]{3})$/i );\n\t\tif( hex3 && hex3[1] ) {\n\t\t\thex3 = hex3[1];\n\t\t\treturn {\n\t\t\t\tr: parseInt( hex3.charAt( 0 ), 16 ) * 0x11,\n\t\t\t\tg: parseInt( hex3.charAt( 1 ), 16 ) * 0x11,\n\t\t\t\tb: parseInt( hex3.charAt( 2 ), 16 ) * 0x11\n\t\t\t};\n\t\t}\n\n\t\tvar hex6 = color.match( /^#([0-9a-f]{6})$/i );\n\t\tif( hex6 && hex6[1] ) {\n\t\t\thex6 = hex6[1];\n\t\t\treturn {\n\t\t\t\tr: parseInt( hex6.substr( 0, 2 ), 16 ),\n\t\t\t\tg: parseInt( hex6.substr( 2, 2 ), 16 ),\n\t\t\t\tb: parseInt( hex6.substr( 4, 2 ), 16 )\n\t\t\t};\n\t\t}\n\n\t\tvar rgb = color.match( /^rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)$/i );\n\t\tif( rgb ) {\n\t\t\treturn {\n\t\t\t\tr: parseInt( rgb[1], 10 ),\n\t\t\t\tg: parseInt( rgb[2], 10 ),\n\t\t\t\tb: parseInt( rgb[3], 10 )\n\t\t\t};\n\t\t}\n\n\t\tvar rgba = color.match( /^rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\,\\s*([\\d]+|[\\d]*.[\\d]+)\\s*\\)$/i );\n\t\tif( rgba ) {\n\t\t\treturn {\n\t\t\t\tr: parseInt( rgba[1], 10 ),\n\t\t\t\tg: parseInt( rgba[2], 10 ),\n\t\t\t\tb: parseInt( rgba[3], 10 ),\n\t\t\t\ta: parseFloat( rgba[4] )\n\t\t\t};\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\t/**\n\t * Calculates brightness on a scale of 0-255.\n\t *\n\t * @param {string} color See colorToRgb for supported formats.\n\t * @see {@link colorToRgb}\n\t */\n\tfunction colorBrightness( color ) {\n\n\t\tif( typeof color === 'string' ) color = colorToRgb( color );\n\n\t\tif( color ) {\n\t\t\treturn ( color.r * 299 + color.g * 587 + color.b * 114 ) / 1000;\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\t/**\n\t * Returns the remaining height within the parent of the\n\t * target element.\n\t *\n\t * remaining height = [ configured parent height ] - [ current parent height ]\n\t *\n\t * @param {HTMLElement} element\n\t * @param {number} [height]\n\t */\n\tfunction getRemainingHeight( element, height ) {\n\n\t\theight = height || 0;\n\n\t\tif( element ) {\n\t\t\tvar newHeight, oldHeight = element.style.height;\n\n\t\t\t// Change the .stretch element height to 0 in order find the height of all\n\t\t\t// the other elements\n\t\t\telement.style.height = '0px';\n\t\t\tnewHeight = height - element.parentNode.offsetHeight;\n\n\t\t\t// Restore the old height, just in case\n\t\t\telement.style.height = oldHeight + 'px';\n\n\t\t\treturn newHeight;\n\t\t}\n\n\t\treturn height;\n\n\t}\n\n\t/**\n\t * Checks if this instance is being used to print a PDF.\n\t */\n\tfunction isPrintingPDF() {\n\n\t\treturn ( /print-pdf/gi ).test( window.location.search );\n\n\t}\n\n\t/**\n\t * Hides the address bar if we're on a mobile device.\n\t */\n\tfunction hideAddressBar() {\n\n\t\tif( config.hideAddressBar && isMobileDevice ) {\n\t\t\t// Events that should trigger the address bar to hide\n\t\t\twindow.addEventListener( 'load', removeAddressBar, false );\n\t\t\twindow.addEventListener( 'orientationchange', removeAddressBar, false );\n\t\t}\n\n\t}\n\n\t/**\n\t * Causes the address bar to hide on mobile devices,\n\t * more vertical space ftw.\n\t */\n\tfunction removeAddressBar() {\n\n\t\tsetTimeout( function() {\n\t\t\twindow.scrollTo( 0, 1 );\n\t\t}, 10 );\n\n\t}\n\n\t/**\n\t * Dispatches an event of the specified type from the\n\t * reveal DOM element.\n\t */\n\tfunction dispatchEvent( type, args ) {\n\n\t\tvar event = document.createEvent( 'HTMLEvents', 1, 2 );\n\t\tevent.initEvent( type, true, true );\n\t\textend( event, args );\n\t\tdom.wrapper.dispatchEvent( event );\n\n\t\t// If we're in an iframe, post each reveal.js event to the\n\t\t// parent window. Used by the notes plugin\n\t\tif( config.postMessageEvents && window.parent !== window.self ) {\n\t\t\twindow.parent.postMessage( JSON.stringify({ namespace: 'reveal', eventName: type, state: getState() }), '*' );\n\t\t}\n\n\t}\n\n\t/**\n\t * Wrap all links in 3D goodness.\n\t */\n\tfunction enableRollingLinks() {\n\n\t\tif( features.transforms3d && !( 'msPerspective' in document.body.style ) ) {\n\t\t\tvar anchors = dom.wrapper.querySelectorAll( SLIDES_SELECTOR + ' a' );\n\n\t\t\tfor( var i = 0, len = anchors.length; i < len; i++ ) {\n\t\t\t\tvar anchor = anchors[i];\n\n\t\t\t\tif( anchor.textContent && !anchor.querySelector( '*' ) && ( !anchor.className || !anchor.classList.contains( anchor, 'roll' ) ) ) {\n\t\t\t\t\tvar span = document.createElement('span');\n\t\t\t\t\tspan.setAttribute('data-title', anchor.text);\n\t\t\t\t\tspan.innerHTML = anchor.innerHTML;\n\n\t\t\t\t\tanchor.classList.add( 'roll' );\n\t\t\t\t\tanchor.innerHTML = '';\n\t\t\t\t\tanchor.appendChild(span);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Unwrap all 3D links.\n\t */\n\tfunction disableRollingLinks() {\n\n\t\tvar anchors = dom.wrapper.querySelectorAll( SLIDES_SELECTOR + ' a.roll' );\n\n\t\tfor( var i = 0, len = anchors.length; i < len; i++ ) {\n\t\t\tvar anchor = anchors[i];\n\t\t\tvar span = anchor.querySelector( 'span' );\n\n\t\t\tif( span ) {\n\t\t\t\tanchor.classList.remove( 'roll' );\n\t\t\t\tanchor.innerHTML = span.innerHTML;\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Bind preview frame links.\n\t *\n\t * @param {string} [selector=a] - selector for anchors\n\t */\n\tfunction enablePreviewLinks( selector ) {\n\n\t\tvar anchors = toArray( document.querySelectorAll( selector ? selector : 'a' ) );\n\n\t\tanchors.forEach( function( element ) {\n\t\t\tif( /^(http|www)/gi.test( element.getAttribute( 'href' ) ) ) {\n\t\t\t\telement.addEventListener( 'click', onPreviewLinkClicked, false );\n\t\t\t}\n\t\t} );\n\n\t}\n\n\t/**\n\t * Unbind preview frame links.\n\t */\n\tfunction disablePreviewLinks( selector ) {\n\n\t\tvar anchors = toArray( document.querySelectorAll( selector ? selector : 'a' ) );\n\n\t\tanchors.forEach( function( element ) {\n\t\t\tif( /^(http|www)/gi.test( element.getAttribute( 'href' ) ) ) {\n\t\t\t\telement.removeEventListener( 'click', onPreviewLinkClicked, false );\n\t\t\t}\n\t\t} );\n\n\t}\n\n\t/**\n\t * Opens a preview window for the target URL.\n\t *\n\t * @param {string} url - url for preview iframe src\n\t */\n\tfunction showPreview( url ) {\n\n\t\tcloseOverlay();\n\n\t\tdom.overlay = document.createElement( 'div' );\n\t\tdom.overlay.classList.add( 'overlay' );\n\t\tdom.overlay.classList.add( 'overlay-preview' );\n\t\tdom.wrapper.appendChild( dom.overlay );\n\n\t\tdom.overlay.innerHTML = [\n\t\t\t'<header>',\n\t\t\t\t'<a class=\"close\" href=\"#\"><span class=\"icon\"></span></a>',\n\t\t\t\t'<a class=\"external\" href=\"'+ url +'\" target=\"_blank\"><span class=\"icon\"></span></a>',\n\t\t\t'</header>',\n\t\t\t'<div class=\"spinner\"></div>',\n\t\t\t'<div class=\"viewport\">',\n\t\t\t\t'<iframe src=\"'+ url +'\"></iframe>',\n\t\t\t\t'<small class=\"viewport-inner\">',\n\t\t\t\t\t'<span class=\"x-frame-error\">Unable to load iframe. This is likely due to the site\\'s policy (x-frame-options).</span>',\n\t\t\t\t'</small>',\n\t\t\t'</div>'\n\t\t].join('');\n\n\t\tdom.overlay.querySelector( 'iframe' ).addEventListener( 'load', function( event ) {\n\t\t\tdom.overlay.classList.add( 'loaded' );\n\t\t}, false );\n\n\t\tdom.overlay.querySelector( '.close' ).addEventListener( 'click', function( event ) {\n\t\t\tcloseOverlay();\n\t\t\tevent.preventDefault();\n\t\t}, false );\n\n\t\tdom.overlay.querySelector( '.external' ).addEventListener( 'click', function( event ) {\n\t\t\tcloseOverlay();\n\t\t}, false );\n\n\t\tsetTimeout( function() {\n\t\t\tdom.overlay.classList.add( 'visible' );\n\t\t}, 1 );\n\n\t}\n\n\t/**\n\t * Open or close help overlay window.\n\t *\n\t * @param {Boolean} [override] Flag which overrides the\n\t * toggle logic and forcibly sets the desired state. True means\n\t * help is open, false means it's closed.\n\t */\n\tfunction toggleHelp( override ){\n\n\t\tif( typeof override === 'boolean' ) {\n\t\t\toverride ? showHelp() : closeOverlay();\n\t\t}\n\t\telse {\n\t\t\tif( dom.overlay ) {\n\t\t\t\tcloseOverlay();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tshowHelp();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Opens an overlay window with help material.\n\t */\n\tfunction showHelp() {\n\n\t\tif( config.help ) {\n\n\t\t\tcloseOverlay();\n\n\t\t\tdom.overlay = document.createElement( 'div' );\n\t\t\tdom.overlay.classList.add( 'overlay' );\n\t\t\tdom.overlay.classList.add( 'overlay-help' );\n\t\t\tdom.wrapper.appendChild( dom.overlay );\n\n\t\t\tvar html = '<p class=\"title\">Keyboard Shortcuts</p><br/>';\n\n\t\t\thtml += '<table><th>KEY</th><th>ACTION</th>';\n\t\t\tfor( var key in keyboardShortcuts ) {\n\t\t\t\thtml += '<tr><td>' + key + '</td><td>' + keyboardShortcuts[ key ] + '</td></tr>';\n\t\t\t}\n\n\t\t\thtml += '</table>';\n\n\t\t\tdom.overlay.innerHTML = [\n\t\t\t\t'<header>',\n\t\t\t\t\t'<a class=\"close\" href=\"#\"><span class=\"icon\"></span></a>',\n\t\t\t\t'</header>',\n\t\t\t\t'<div class=\"viewport\">',\n\t\t\t\t\t'<div class=\"viewport-inner\">'+ html +'</div>',\n\t\t\t\t'</div>'\n\t\t\t].join('');\n\n\t\t\tdom.overlay.querySelector( '.close' ).addEventListener( 'click', function( event ) {\n\t\t\t\tcloseOverlay();\n\t\t\t\tevent.preventDefault();\n\t\t\t}, false );\n\n\t\t\tsetTimeout( function() {\n\t\t\t\tdom.overlay.classList.add( 'visible' );\n\t\t\t}, 1 );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Closes any currently open overlay.\n\t */\n\tfunction closeOverlay() {\n\n\t\tif( dom.overlay ) {\n\t\t\tdom.overlay.parentNode.removeChild( dom.overlay );\n\t\t\tdom.overlay = null;\n\t\t}\n\n\t}\n\n\t/**\n\t * Applies JavaScript-controlled layout rules to the\n\t * presentation.\n\t */\n\tfunction layout() {\n\n\t\tif( dom.wrapper && !isPrintingPDF() ) {\n\n\t\t\tvar size = getComputedSlideSize();\n\n\t\t\t// Layout the contents of the slides\n\t\t\tlayoutSlideContents( config.width, config.height );\n\n\t\t\tdom.slides.style.width = size.width + 'px';\n\t\t\tdom.slides.style.height = size.height + 'px';\n\n\t\t\t// Determine scale of content to fit within available space\n\t\t\tscale = Math.min( size.presentationWidth / size.width, size.presentationHeight / size.height );\n\n\t\t\t// Respect max/min scale settings\n\t\t\tscale = Math.max( scale, config.minScale );\n\t\t\tscale = Math.min( scale, config.maxScale );\n\n\t\t\t// Don't apply any scaling styles if scale is 1\n\t\t\tif( scale === 1 ) {\n\t\t\t\tdom.slides.style.zoom = '';\n\t\t\t\tdom.slides.style.left = '';\n\t\t\t\tdom.slides.style.top = '';\n\t\t\t\tdom.slides.style.bottom = '';\n\t\t\t\tdom.slides.style.right = '';\n\t\t\t\ttransformSlides( { layout: '' } );\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Prefer zoom for scaling up so that content remains crisp.\n\t\t\t\t// Don't use zoom to scale down since that can lead to shifts\n\t\t\t\t// in text layout/line breaks.\n\t\t\t\tif( scale > 1 && features.zoom ) {\n\t\t\t\t\tdom.slides.style.zoom = scale;\n\t\t\t\t\tdom.slides.style.left = '';\n\t\t\t\t\tdom.slides.style.top = '';\n\t\t\t\t\tdom.slides.style.bottom = '';\n\t\t\t\t\tdom.slides.style.right = '';\n\t\t\t\t\ttransformSlides( { layout: '' } );\n\t\t\t\t}\n\t\t\t\t// Apply scale transform as a fallback\n\t\t\t\telse {\n\t\t\t\t\tdom.slides.style.zoom = '';\n\t\t\t\t\tdom.slides.style.left = '50%';\n\t\t\t\t\tdom.slides.style.top = '50%';\n\t\t\t\t\tdom.slides.style.bottom = 'auto';\n\t\t\t\t\tdom.slides.style.right = 'auto';\n\t\t\t\t\ttransformSlides( { layout: 'translate(-50%, -50%) scale('+ scale +')' } );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Select all slides, vertical and horizontal\n\t\t\tvar slides = toArray( dom.wrapper.querySelectorAll( SLIDES_SELECTOR ) );\n\n\t\t\tfor( var i = 0, len = slides.length; i < len; i++ ) {\n\t\t\t\tvar slide = slides[ i ];\n\n\t\t\t\t// Don't bother updating invisible slides\n\t\t\t\tif( slide.style.display === 'none' ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif( config.center || slide.classList.contains( 'center' ) ) {\n\t\t\t\t\t// Vertical stacks are not centred since their section\n\t\t\t\t\t// children will be\n\t\t\t\t\tif( slide.classList.contains( 'stack' ) ) {\n\t\t\t\t\t\tslide.style.top = 0;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tslide.style.top = Math.max( ( size.height - slide.scrollHeight ) / 2, 0 ) + 'px';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tslide.style.top = '';\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tupdateProgress();\n\t\t\tupdateParallax();\n\n\t\t\tif( isOverview() ) {\n\t\t\t\tupdateOverview();\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Applies layout logic to the contents of all slides in\n\t * the presentation.\n\t *\n\t * @param {string|number} width\n\t * @param {string|number} height\n\t */\n\tfunction layoutSlideContents( width, height ) {\n\n\t\t// Handle sizing of elements with the 'stretch' class\n\t\ttoArray( dom.slides.querySelectorAll( 'section > .stretch' ) ).forEach( function( element ) {\n\n\t\t\t// Determine how much vertical space we can use\n\t\t\tvar remainingHeight = getRemainingHeight( element, height );\n\n\t\t\t// Consider the aspect ratio of media elements\n\t\t\tif( /(img|video)/gi.test( element.nodeName ) ) {\n\t\t\t\tvar nw = element.naturalWidth || element.videoWidth,\n\t\t\t\t\tnh = element.naturalHeight || element.videoHeight;\n\n\t\t\t\tvar es = Math.min( width / nw, remainingHeight / nh );\n\n\t\t\t\telement.style.width = ( nw * es ) + 'px';\n\t\t\t\telement.style.height = ( nh * es ) + 'px';\n\n\t\t\t}\n\t\t\telse {\n\t\t\t\telement.style.width = width + 'px';\n\t\t\t\telement.style.height = remainingHeight + 'px';\n\t\t\t}\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Calculates the computed pixel size of our slides. These\n\t * values are based on the width and height configuration\n\t * options.\n\t *\n\t * @param {number} [presentationWidth=dom.wrapper.offsetWidth]\n\t * @param {number} [presentationHeight=dom.wrapper.offsetHeight]\n\t */\n\tfunction getComputedSlideSize( presentationWidth, presentationHeight ) {\n\n\t\tvar size = {\n\t\t\t// Slide size\n\t\t\twidth: config.width,\n\t\t\theight: config.height,\n\n\t\t\t// Presentation size\n\t\t\tpresentationWidth: presentationWidth || dom.wrapper.offsetWidth,\n\t\t\tpresentationHeight: presentationHeight || dom.wrapper.offsetHeight\n\t\t};\n\n\t\t// Reduce available space by margin\n\t\tsize.presentationWidth -= ( size.presentationWidth * config.margin );\n\t\tsize.presentationHeight -= ( size.presentationHeight * config.margin );\n\n\t\t// Slide width may be a percentage of available width\n\t\tif( typeof size.width === 'string' && /%$/.test( size.width ) ) {\n\t\t\tsize.width = parseInt( size.width, 10 ) / 100 * size.presentationWidth;\n\t\t}\n\n\t\t// Slide height may be a percentage of available height\n\t\tif( typeof size.height === 'string' && /%$/.test( size.height ) ) {\n\t\t\tsize.height = parseInt( size.height, 10 ) / 100 * size.presentationHeight;\n\t\t}\n\n\t\treturn size;\n\n\t}\n\n\t/**\n\t * Stores the vertical index of a stack so that the same\n\t * vertical slide can be selected when navigating to and\n\t * from the stack.\n\t *\n\t * @param {HTMLElement} stack The vertical stack element\n\t * @param {string|number} [v=0] Index to memorize\n\t */\n\tfunction setPreviousVerticalIndex( stack, v ) {\n\n\t\tif( typeof stack === 'object' && typeof stack.setAttribute === 'function' ) {\n\t\t\tstack.setAttribute( 'data-previous-indexv', v || 0 );\n\t\t}\n\n\t}\n\n\t/**\n\t * Retrieves the vertical index which was stored using\n\t * #setPreviousVerticalIndex() or 0 if no previous index\n\t * exists.\n\t *\n\t * @param {HTMLElement} stack The vertical stack element\n\t */\n\tfunction getPreviousVerticalIndex( stack ) {\n\n\t\tif( typeof stack === 'object' && typeof stack.setAttribute === 'function' && stack.classList.contains( 'stack' ) ) {\n\t\t\t// Prefer manually defined start-indexv\n\t\t\tvar attributeName = stack.hasAttribute( 'data-start-indexv' ) ? 'data-start-indexv' : 'data-previous-indexv';\n\n\t\t\treturn parseInt( stack.getAttribute( attributeName ) || 0, 10 );\n\t\t}\n\n\t\treturn 0;\n\n\t}\n\n\t/**\n\t * Displays the overview of slides (quick nav) by scaling\n\t * down and arranging all slide elements.\n\t */\n\tfunction activateOverview() {\n\n\t\t// Only proceed if enabled in config\n\t\tif( config.overview && !isOverview() ) {\n\n\t\t\toverview = true;\n\n\t\t\tdom.wrapper.classList.add( 'overview' );\n\t\t\tdom.wrapper.classList.remove( 'overview-deactivating' );\n\n\t\t\tif( features.overviewTransitions ) {\n\t\t\t\tsetTimeout( function() {\n\t\t\t\t\tdom.wrapper.classList.add( 'overview-animated' );\n\t\t\t\t}, 1 );\n\t\t\t}\n\n\t\t\t// Don't auto-slide while in overview mode\n\t\t\tcancelAutoSlide();\n\n\t\t\t// Move the backgrounds element into the slide container to\n\t\t\t// that the same scaling is applied\n\t\t\tdom.slides.appendChild( dom.background );\n\n\t\t\t// Clicking on an overview slide navigates to it\n\t\t\ttoArray( dom.wrapper.querySelectorAll( SLIDES_SELECTOR ) ).forEach( function( slide ) {\n\t\t\t\tif( !slide.classList.contains( 'stack' ) ) {\n\t\t\t\t\tslide.addEventListener( 'click', onOverviewSlideClicked, true );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Calculate slide sizes\n\t\t\tvar margin = 70;\n\t\t\tvar slideSize = getComputedSlideSize();\n\t\t\toverviewSlideWidth = slideSize.width + margin;\n\t\t\toverviewSlideHeight = slideSize.height + margin;\n\n\t\t\t// Reverse in RTL mode\n\t\t\tif( config.rtl ) {\n\t\t\t\toverviewSlideWidth = -overviewSlideWidth;\n\t\t\t}\n\n\t\t\tupdateSlidesVisibility();\n\t\t\tlayoutOverview();\n\t\t\tupdateOverview();\n\n\t\t\tlayout();\n\n\t\t\t// Notify observers of the overview showing\n\t\t\tdispatchEvent( 'overviewshown', {\n\t\t\t\t'indexh': indexh,\n\t\t\t\t'indexv': indexv,\n\t\t\t\t'currentSlide': currentSlide\n\t\t\t} );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Uses CSS transforms to position all slides in a grid for\n\t * display inside of the overview mode.\n\t */\n\tfunction layoutOverview() {\n\n\t\t// Layout slides\n\t\ttoArray( dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ).forEach( function( hslide, h ) {\n\t\t\thslide.setAttribute( 'data-index-h', h );\n\t\t\ttransformElement( hslide, 'translate3d(' + ( h * overviewSlideWidth ) + 'px, 0, 0)' );\n\n\t\t\tif( hslide.classList.contains( 'stack' ) ) {\n\n\t\t\t\ttoArray( hslide.querySelectorAll( 'section' ) ).forEach( function( vslide, v ) {\n\t\t\t\t\tvslide.setAttribute( 'data-index-h', h );\n\t\t\t\t\tvslide.setAttribute( 'data-index-v', v );\n\n\t\t\t\t\ttransformElement( vslide, 'translate3d(0, ' + ( v * overviewSlideHeight ) + 'px, 0)' );\n\t\t\t\t} );\n\n\t\t\t}\n\t\t} );\n\n\t\t// Layout slide backgrounds\n\t\ttoArray( dom.background.childNodes ).forEach( function( hbackground, h ) {\n\t\t\ttransformElement( hbackground, 'translate3d(' + ( h * overviewSlideWidth ) + 'px, 0, 0)' );\n\n\t\t\ttoArray( hbackground.querySelectorAll( '.slide-background' ) ).forEach( function( vbackground, v ) {\n\t\t\t\ttransformElement( vbackground, 'translate3d(0, ' + ( v * overviewSlideHeight ) + 'px, 0)' );\n\t\t\t} );\n\t\t} );\n\n\t}\n\n\t/**\n\t * Moves the overview viewport to the current slides.\n\t * Called each time the current slide changes.\n\t */\n\tfunction updateOverview() {\n\n\t\tvar vmin = Math.min( window.innerWidth, window.innerHeight );\n\t\tvar scale = Math.max( vmin / 5, 150 ) / vmin;\n\n\t\ttransformSlides( {\n\t\t\toverview: [\n\t\t\t\t'scale('+ scale +')',\n\t\t\t\t'translateX('+ ( -indexh * overviewSlideWidth ) +'px)',\n\t\t\t\t'translateY('+ ( -indexv * overviewSlideHeight ) +'px)'\n\t\t\t].join( ' ' )\n\t\t} );\n\n\t}\n\n\t/**\n\t * Exits the slide overview and enters the currently\n\t * active slide.\n\t */\n\tfunction deactivateOverview() {\n\n\t\t// Only proceed if enabled in config\n\t\tif( config.overview ) {\n\n\t\t\toverview = false;\n\n\t\t\tdom.wrapper.classList.remove( 'overview' );\n\t\t\tdom.wrapper.classList.remove( 'overview-animated' );\n\n\t\t\t// Temporarily add a class so that transitions can do different things\n\t\t\t// depending on whether they are exiting/entering overview, or just\n\t\t\t// moving from slide to slide\n\t\t\tdom.wrapper.classList.add( 'overview-deactivating' );\n\n\t\t\tsetTimeout( function () {\n\t\t\t\tdom.wrapper.classList.remove( 'overview-deactivating' );\n\t\t\t}, 1 );\n\n\t\t\t// Move the background element back out\n\t\t\tdom.wrapper.appendChild( dom.background );\n\n\t\t\t// Clean up changes made to slides\n\t\t\ttoArray( dom.wrapper.querySelectorAll( SLIDES_SELECTOR ) ).forEach( function( slide ) {\n\t\t\t\ttransformElement( slide, '' );\n\n\t\t\t\tslide.removeEventListener( 'click', onOverviewSlideClicked, true );\n\t\t\t} );\n\n\t\t\t// Clean up changes made to backgrounds\n\t\t\ttoArray( dom.background.querySelectorAll( '.slide-background' ) ).forEach( function( background ) {\n\t\t\t\ttransformElement( background, '' );\n\t\t\t} );\n\n\t\t\ttransformSlides( { overview: '' } );\n\n\t\t\tslide( indexh, indexv );\n\n\t\t\tlayout();\n\n\t\t\tcueAutoSlide();\n\n\t\t\t// Notify observers of the overview hiding\n\t\t\tdispatchEvent( 'overviewhidden', {\n\t\t\t\t'indexh': indexh,\n\t\t\t\t'indexv': indexv,\n\t\t\t\t'currentSlide': currentSlide\n\t\t\t} );\n\n\t\t}\n\t}\n\n\t/**\n\t * Toggles the slide overview mode on and off.\n\t *\n\t * @param {Boolean} [override] Flag which overrides the\n\t * toggle logic and forcibly sets the desired state. True means\n\t * overview is open, false means it's closed.\n\t */\n\tfunction toggleOverview( override ) {\n\n\t\tif( typeof override === 'boolean' ) {\n\t\t\toverride ? activateOverview() : deactivateOverview();\n\t\t}\n\t\telse {\n\t\t\tisOverview() ? deactivateOverview() : activateOverview();\n\t\t}\n\n\t}\n\n\t/**\n\t * Checks if the overview is currently active.\n\t *\n\t * @return {Boolean} true if the overview is active,\n\t * false otherwise\n\t */\n\tfunction isOverview() {\n\n\t\treturn overview;\n\n\t}\n\n\t/**\n\t * Checks if the current or specified slide is vertical\n\t * (nested within another slide).\n\t *\n\t * @param {HTMLElement} [slide=currentSlide] The slide to check\n\t * orientation of\n\t * @return {Boolean}\n\t */\n\tfunction isVerticalSlide( slide ) {\n\n\t\t// Prefer slide argument, otherwise use current slide\n\t\tslide = slide ? slide : currentSlide;\n\n\t\treturn slide && slide.parentNode && !!slide.parentNode.nodeName.match( /section/i );\n\n\t}\n\n\t/**\n\t * Handling the fullscreen functionality via the fullscreen API\n\t *\n\t * @see http://fullscreen.spec.whatwg.org/\n\t * @see https://developer.mozilla.org/en-US/docs/DOM/Using_fullscreen_mode\n\t */\n\tfunction enterFullscreen() {\n\n\t\tvar element = document.documentElement;\n\n\t\t// Check which implementation is available\n\t\tvar requestMethod = element.requestFullscreen ||\n\t\t\t\t\t\t\telement.webkitRequestFullscreen ||\n\t\t\t\t\t\t\telement.webkitRequestFullScreen ||\n\t\t\t\t\t\t\telement.mozRequestFullScreen ||\n\t\t\t\t\t\t\telement.msRequestFullscreen;\n\n\t\tif( requestMethod ) {\n\t\t\trequestMethod.apply( element );\n\t\t}\n\n\t}\n\n\t/**\n\t * Enters the paused mode which fades everything on screen to\n\t * black.\n\t */\n\tfunction pause() {\n\n\t\tif( config.pause ) {\n\t\t\tvar wasPaused = dom.wrapper.classList.contains( 'paused' );\n\n\t\t\tcancelAutoSlide();\n\t\t\tdom.wrapper.classList.add( 'paused' );\n\n\t\t\tif( wasPaused === false ) {\n\t\t\t\tdispatchEvent( 'paused' );\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Exits from the paused mode.\n\t */\n\tfunction resume() {\n\n\t\tvar wasPaused = dom.wrapper.classList.contains( 'paused' );\n\t\tdom.wrapper.classList.remove( 'paused' );\n\n\t\tcueAutoSlide();\n\n\t\tif( wasPaused ) {\n\t\t\tdispatchEvent( 'resumed' );\n\t\t}\n\n\t}\n\n\t/**\n\t * Toggles the paused mode on and off.\n\t */\n\tfunction togglePause( override ) {\n\n\t\tif( typeof override === 'boolean' ) {\n\t\t\toverride ? pause() : resume();\n\t\t}\n\t\telse {\n\t\t\tisPaused() ? resume() : pause();\n\t\t}\n\n\t}\n\n\t/**\n\t * Checks if we are currently in the paused mode.\n\t *\n\t * @return {Boolean}\n\t */\n\tfunction isPaused() {\n\n\t\treturn dom.wrapper.classList.contains( 'paused' );\n\n\t}\n\n\t/**\n\t * Toggles the auto slide mode on and off.\n\t *\n\t * @param {Boolean} [override] Flag which sets the desired state.\n\t * True means autoplay starts, false means it stops.\n\t */\n\n\tfunction toggleAutoSlide( override ) {\n\n\t\tif( typeof override === 'boolean' ) {\n\t\t\toverride ? resumeAutoSlide() : pauseAutoSlide();\n\t\t}\n\n\t\telse {\n\t\t\tautoSlidePaused ? resumeAutoSlide() : pauseAutoSlide();\n\t\t}\n\n\t}\n\n\t/**\n\t * Checks if the auto slide mode is currently on.\n\t *\n\t * @return {Boolean}\n\t */\n\tfunction isAutoSliding() {\n\n\t\treturn !!( autoSlide && !autoSlidePaused );\n\n\t}\n\n\t/**\n\t * Steps from the current point in the presentation to the\n\t * slide which matches the specified horizontal and vertical\n\t * indices.\n\t *\n\t * @param {number} [h=indexh] Horizontal index of the target slide\n\t * @param {number} [v=indexv] Vertical index of the target slide\n\t * @param {number} [f] Index of a fragment within the\n\t * target slide to activate\n\t * @param {number} [o] Origin for use in multimaster environments\n\t */\n\tfunction slide( h, v, f, o ) {\n\n\t\t// Remember where we were at before\n\t\tpreviousSlide = currentSlide;\n\n\t\t// Query all horizontal slides in the deck\n\t\tvar horizontalSlides = dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR );\n\n\t\t// Abort if there are no slides\n\t\tif( horizontalSlides.length === 0 ) return;\n\n\t\t// If no vertical index is specified and the upcoming slide is a\n\t\t// stack, resume at its previous vertical index\n\t\tif( v === undefined && !isOverview() ) {\n\t\t\tv = getPreviousVerticalIndex( horizontalSlides[ h ] );\n\t\t}\n\n\t\t// If we were on a vertical stack, remember what vertical index\n\t\t// it was on so we can resume at the same position when returning\n\t\tif( previousSlide && previousSlide.parentNode && previousSlide.parentNode.classList.contains( 'stack' ) ) {\n\t\t\tsetPreviousVerticalIndex( previousSlide.parentNode, indexv );\n\t\t}\n\n\t\t// Remember the state before this slide\n\t\tvar stateBefore = state.concat();\n\n\t\t// Reset the state array\n\t\tstate.length = 0;\n\n\t\tvar indexhBefore = indexh || 0,\n\t\t\tindexvBefore = indexv || 0;\n\n\t\t// Activate and transition to the new slide\n\t\tindexh = updateSlides( HORIZONTAL_SLIDES_SELECTOR, h === undefined ? indexh : h );\n\t\tindexv = updateSlides( VERTICAL_SLIDES_SELECTOR, v === undefined ? indexv : v );\n\n\t\t// Update the visibility of slides now that the indices have changed\n\t\tupdateSlidesVisibility();\n\n\t\tlayout();\n\n\t\t// Apply the new state\n\t\tstateLoop: for( var i = 0, len = state.length; i < len; i++ ) {\n\t\t\t// Check if this state existed on the previous slide. If it\n\t\t\t// did, we will avoid adding it repeatedly\n\t\t\tfor( var j = 0; j < stateBefore.length; j++ ) {\n\t\t\t\tif( stateBefore[j] === state[i] ) {\n\t\t\t\t\tstateBefore.splice( j, 1 );\n\t\t\t\t\tcontinue stateLoop;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdocument.documentElement.classList.add( state[i] );\n\n\t\t\t// Dispatch custom event matching the state's name\n\t\t\tdispatchEvent( state[i] );\n\t\t}\n\n\t\t// Clean up the remains of the previous state\n\t\twhile( stateBefore.length ) {\n\t\t\tdocument.documentElement.classList.remove( stateBefore.pop() );\n\t\t}\n\n\t\t// Update the overview if it's currently active\n\t\tif( isOverview() ) {\n\t\t\tupdateOverview();\n\t\t}\n\n\t\t// Find the current horizontal slide and any possible vertical slides\n\t\t// within it\n\t\tvar currentHorizontalSlide = horizontalSlides[ indexh ],\n\t\t\tcurrentVerticalSlides = currentHorizontalSlide.querySelectorAll( 'section' );\n\n\t\t// Store references to the previous and current slides\n\t\tcurrentSlide = currentVerticalSlides[ indexv ] || currentHorizontalSlide;\n\n\t\t// Show fragment, if specified\n\t\tif( typeof f !== 'undefined' ) {\n\t\t\tnavigateFragment( f );\n\t\t}\n\n\t\t// Dispatch an event if the slide changed\n\t\tvar slideChanged = ( indexh !== indexhBefore || indexv !== indexvBefore );\n\t\tif( slideChanged ) {\n\t\t\tdispatchEvent( 'slidechanged', {\n\t\t\t\t'indexh': indexh,\n\t\t\t\t'indexv': indexv,\n\t\t\t\t'previousSlide': previousSlide,\n\t\t\t\t'currentSlide': currentSlide,\n\t\t\t\t'origin': o\n\t\t\t} );\n\t\t}\n\t\telse {\n\t\t\t// Ensure that the previous slide is never the same as the current\n\t\t\tpreviousSlide = null;\n\t\t}\n\n\t\t// Solves an edge case where the previous slide maintains the\n\t\t// 'present' class when navigating between adjacent vertical\n\t\t// stacks\n\t\tif( previousSlide ) {\n\t\t\tpreviousSlide.classList.remove( 'present' );\n\t\t\tpreviousSlide.setAttribute( 'aria-hidden', 'true' );\n\n\t\t\t// Reset all slides upon navigate to home\n\t\t\t// Issue: #285\n\t\t\tif ( dom.wrapper.querySelector( HOME_SLIDE_SELECTOR ).classList.contains( 'present' ) ) {\n\t\t\t\t// Launch async task\n\t\t\t\tsetTimeout( function () {\n\t\t\t\t\tvar slides = toArray( dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.stack') ), i;\n\t\t\t\t\tfor( i in slides ) {\n\t\t\t\t\t\tif( slides[i] ) {\n\t\t\t\t\t\t\t// Reset stack\n\t\t\t\t\t\t\tsetPreviousVerticalIndex( slides[i], 0 );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, 0 );\n\t\t\t}\n\t\t}\n\n\t\t// Handle embedded content\n\t\tif( slideChanged || !previousSlide ) {\n\t\t\tstopEmbeddedContent( previousSlide );\n\t\t\tstartEmbeddedContent( currentSlide );\n\t\t}\n\n\t\t// Announce the current slide contents, for screen readers\n\t\tdom.statusDiv.textContent = getStatusText( currentSlide );\n\n\t\tupdateControls();\n\t\tupdateProgress();\n\t\tupdateBackground();\n\t\tupdateParallax();\n\t\tupdateSlideNumber();\n\t\tupdateNotes();\n\n\t\t// Update the URL hash\n\t\twriteURL();\n\n\t\tcueAutoSlide();\n\n\t}\n\n\t/**\n\t * Syncs the presentation with the current DOM. Useful\n\t * when new slides or control elements are added or when\n\t * the configuration has changed.\n\t */\n\tfunction sync() {\n\n\t\t// Subscribe to input\n\t\tremoveEventListeners();\n\t\taddEventListeners();\n\n\t\t// Force a layout to make sure the current config is accounted for\n\t\tlayout();\n\n\t\t// Reflect the current autoSlide value\n\t\tautoSlide = config.autoSlide;\n\n\t\t// Start auto-sliding if it's enabled\n\t\tcueAutoSlide();\n\n\t\t// Re-create the slide backgrounds\n\t\tcreateBackgrounds();\n\n\t\t// Write the current hash to the URL\n\t\twriteURL();\n\n\t\tsortAllFragments();\n\n\t\tupdateControls();\n\t\tupdateProgress();\n\t\tupdateSlideNumber();\n\t\tupdateSlidesVisibility();\n\t\tupdateBackground( true );\n\t\tupdateNotes();\n\n\t\tformatEmbeddedContent();\n\n\t\t// Start or stop embedded content depending on global config\n\t\tif( config.autoPlayMedia === false ) {\n\t\t\tstopEmbeddedContent( currentSlide );\n\t\t}\n\t\telse {\n\t\t\tstartEmbeddedContent( currentSlide );\n\t\t}\n\n\t\tif( isOverview() ) {\n\t\t\tlayoutOverview();\n\t\t}\n\n\t}\n\n\t/**\n\t * Resets all vertical slides so that only the first\n\t * is visible.\n\t */\n\tfunction resetVerticalSlides() {\n\n\t\tvar horizontalSlides = toArray( dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) );\n\t\thorizontalSlides.forEach( function( horizontalSlide ) {\n\n\t\t\tvar verticalSlides = toArray( horizontalSlide.querySelectorAll( 'section' ) );\n\t\t\tverticalSlides.forEach( function( verticalSlide, y ) {\n\n\t\t\t\tif( y > 0 ) {\n\t\t\t\t\tverticalSlide.classList.remove( 'present' );\n\t\t\t\t\tverticalSlide.classList.remove( 'past' );\n\t\t\t\t\tverticalSlide.classList.add( 'future' );\n\t\t\t\t\tverticalSlide.setAttribute( 'aria-hidden', 'true' );\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Sorts and formats all of fragments in the\n\t * presentation.\n\t */\n\tfunction sortAllFragments() {\n\n\t\tvar horizontalSlides = toArray( dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) );\n\t\thorizontalSlides.forEach( function( horizontalSlide ) {\n\n\t\t\tvar verticalSlides = toArray( horizontalSlide.querySelectorAll( 'section' ) );\n\t\t\tverticalSlides.forEach( function( verticalSlide, y ) {\n\n\t\t\t\tsortFragments( verticalSlide.querySelectorAll( '.fragment' ) );\n\n\t\t\t} );\n\n\t\t\tif( verticalSlides.length === 0 ) sortFragments( horizontalSlide.querySelectorAll( '.fragment' ) );\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Randomly shuffles all slides in the deck.\n\t */\n\tfunction shuffle() {\n\n\t\tvar slides = toArray( dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) );\n\n\t\tslides.forEach( function( slide ) {\n\n\t\t\t// Insert this slide next to another random slide. This may\n\t\t\t// cause the slide to insert before itself but that's fine.\n\t\t\tdom.slides.insertBefore( slide, slides[ Math.floor( Math.random() * slides.length ) ] );\n\n\t\t} );\n\n\t}\n\n\t/**\n\t * Updates one dimension of slides by showing the slide\n\t * with the specified index.\n\t *\n\t * @param {string} selector A CSS selector that will fetch\n\t * the group of slides we are working with\n\t * @param {number} index The index of the slide that should be\n\t * shown\n\t *\n\t * @return {number} The index of the slide that is now shown,\n\t * might differ from the passed in index if it was out of\n\t * bounds.\n\t */\n\tfunction updateSlides( selector, index ) {\n\n\t\t// Select all slides and convert the NodeList result to\n\t\t// an array\n\t\tvar slides = toArray( dom.wrapper.querySelectorAll( selector ) ),\n\t\t\tslidesLength = slides.length;\n\n\t\tvar printMode = isPrintingPDF();\n\n\t\tif( slidesLength ) {\n\n\t\t\t// Should the index loop?\n\t\t\tif( config.loop ) {\n\t\t\t\tindex %= slidesLength;\n\n\t\t\t\tif( index < 0 ) {\n\t\t\t\t\tindex = slidesLength + index;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Enforce max and minimum index bounds\n\t\t\tindex = Math.max( Math.min( index, slidesLength - 1 ), 0 );\n\n\t\t\tfor( var i = 0; i < slidesLength; i++ ) {\n\t\t\t\tvar element = slides[i];\n\n\t\t\t\tvar reverse = config.rtl && !isVerticalSlide( element );\n\n\t\t\t\telement.classList.remove( 'past' );\n\t\t\t\telement.classList.remove( 'present' );\n\t\t\t\telement.classList.remove( 'future' );\n\n\t\t\t\t// http://www.w3.org/html/wg/drafts/html/master/editing.html#the-hidden-attribute\n\t\t\t\telement.setAttribute( 'hidden', '' );\n\t\t\t\telement.setAttribute( 'aria-hidden', 'true' );\n\n\t\t\t\t// If this element contains vertical slides\n\t\t\t\tif( element.querySelector( 'section' ) ) {\n\t\t\t\t\telement.classList.add( 'stack' );\n\t\t\t\t}\n\n\t\t\t\t// If we're printing static slides, all slides are \"present\"\n\t\t\t\tif( printMode ) {\n\t\t\t\t\telement.classList.add( 'present' );\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif( i < index ) {\n\t\t\t\t\t// Any element previous to index is given the 'past' class\n\t\t\t\t\telement.classList.add( reverse ? 'future' : 'past' );\n\n\t\t\t\t\tif( config.fragments ) {\n\t\t\t\t\t\tvar pastFragments = toArray( element.querySelectorAll( '.fragment' ) );\n\n\t\t\t\t\t\t// Show all fragments on prior slides\n\t\t\t\t\t\twhile( pastFragments.length ) {\n\t\t\t\t\t\t\tvar pastFragment = pastFragments.pop();\n\t\t\t\t\t\t\tpastFragment.classList.add( 'visible' );\n\t\t\t\t\t\t\tpastFragment.classList.remove( 'current-fragment' );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if( i > index ) {\n\t\t\t\t\t// Any element subsequent to index is given the 'future' class\n\t\t\t\t\telement.classList.add( reverse ? 'past' : 'future' );\n\n\t\t\t\t\tif( config.fragments ) {\n\t\t\t\t\t\tvar futureFragments = toArray( element.querySelectorAll( '.fragment.visible' ) );\n\n\t\t\t\t\t\t// No fragments in future slides should be visible ahead of time\n\t\t\t\t\t\twhile( futureFragments.length ) {\n\t\t\t\t\t\t\tvar futureFragment = futureFragments.pop();\n\t\t\t\t\t\t\tfutureFragment.classList.remove( 'visible' );\n\t\t\t\t\t\t\tfutureFragment.classList.remove( 'current-fragment' );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Mark the current slide as present\n\t\t\tslides[index].classList.add( 'present' );\n\t\t\tslides[index].removeAttribute( 'hidden' );\n\t\t\tslides[index].removeAttribute( 'aria-hidden' );\n\n\t\t\t// If this slide has a state associated with it, add it\n\t\t\t// onto the current state of the deck\n\t\t\tvar slideState = slides[index].getAttribute( 'data-state' );\n\t\t\tif( slideState ) {\n\t\t\t\tstate = state.concat( slideState.split( ' ' ) );\n\t\t\t}\n\n\t\t}\n\t\telse {\n\t\t\t// Since there are no slides we can't be anywhere beyond the\n\t\t\t// zeroth index\n\t\t\tindex = 0;\n\t\t}\n\n\t\treturn index;\n\n\t}\n\n\t/**\n\t * Optimization method; hide all slides that are far away\n\t * from the present slide.\n\t */\n\tfunction updateSlidesVisibility() {\n\n\t\t// Select all slides and convert the NodeList result to\n\t\t// an array\n\t\tvar horizontalSlides = toArray( dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ),\n\t\t\thorizontalSlidesLength = horizontalSlides.length,\n\t\t\tdistanceX,\n\t\t\tdistanceY;\n\n\t\tif( horizontalSlidesLength && typeof indexh !== 'undefined' ) {\n\n\t\t\t// The number of steps away from the present slide that will\n\t\t\t// be visible\n\t\t\tvar viewDistance = isOverview() ? 10 : config.viewDistance;\n\n\t\t\t// Limit view distance on weaker devices\n\t\t\tif( isMobileDevice ) {\n\t\t\t\tviewDistance = isOverview() ? 6 : 2;\n\t\t\t}\n\n\t\t\t// All slides need to be visible when exporting to PDF\n\t\t\tif( isPrintingPDF() ) {\n\t\t\t\tviewDistance = Number.MAX_VALUE;\n\t\t\t}\n\n\t\t\tfor( var x = 0; x < horizontalSlidesLength; x++ ) {\n\t\t\t\tvar horizontalSlide = horizontalSlides[x];\n\n\t\t\t\tvar verticalSlides = toArray( horizontalSlide.querySelectorAll( 'section' ) ),\n\t\t\t\t\tverticalSlidesLength = verticalSlides.length;\n\n\t\t\t\t// Determine how far away this slide is from the present\n\t\t\t\tdistanceX = Math.abs( ( indexh || 0 ) - x ) || 0;\n\n\t\t\t\t// If the presentation is looped, distance should measure\n\t\t\t\t// 1 between the first and last slides\n\t\t\t\tif( config.loop ) {\n\t\t\t\t\tdistanceX = Math.abs( ( ( indexh || 0 ) - x ) % ( horizontalSlidesLength - viewDistance ) ) || 0;\n\t\t\t\t}\n\n\t\t\t\t// Show the horizontal slide if it's within the view distance\n\t\t\t\tif( distanceX < viewDistance ) {\n\t\t\t\t\tshowSlide( horizontalSlide );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\thideSlide( horizontalSlide );\n\t\t\t\t}\n\n\t\t\t\tif( verticalSlidesLength ) {\n\n\t\t\t\t\tvar oy = getPreviousVerticalIndex( horizontalSlide );\n\n\t\t\t\t\tfor( var y = 0; y < verticalSlidesLength; y++ ) {\n\t\t\t\t\t\tvar verticalSlide = verticalSlides[y];\n\n\t\t\t\t\t\tdistanceY = x === ( indexh || 0 ) ? Math.abs( ( indexv || 0 ) - y ) : Math.abs( y - oy );\n\n\t\t\t\t\t\tif( distanceX + distanceY < viewDistance ) {\n\t\t\t\t\t\t\tshowSlide( verticalSlide );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\thideSlide( verticalSlide );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Pick up notes from the current slide and display them\n\t * to the viewer.\n\t *\n\t * @see {@link config.showNotes}\n\t */\n\tfunction updateNotes() {\n\n\t\tif( config.showNotes && dom.speakerNotes && currentSlide && !isPrintingPDF() ) {\n\n\t\t\tdom.speakerNotes.innerHTML = getSlideNotes() || '';\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Updates the progress bar to reflect the current slide.\n\t */\n\tfunction updateProgress() {\n\n\t\t// Update progress if enabled\n\t\tif( config.progress && dom.progressbar ) {\n\n\t\t\tdom.progressbar.style.width = getProgress() * dom.wrapper.offsetWidth + 'px';\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Updates the slide number div to reflect the current slide.\n\t *\n\t * The following slide number formats are available:\n\t * \"h.v\":\thorizontal . vertical slide number (default)\n\t * \"h/v\":\thorizontal / vertical slide number\n\t * \"c\":\tflattened slide number\n\t * \"c/t\":\tflattened slide number / total slides\n\t */\n\tfunction updateSlideNumber() {\n\n\t\t// Update slide number if enabled\n\t\tif( config.slideNumber && dom.slideNumber ) {\n\n\t\t\tvar value = [];\n\t\t\tvar format = 'h.v';\n\n\t\t\t// Check if a custom number format is available\n\t\t\tif( typeof config.slideNumber === 'string' ) {\n\t\t\t\tformat = config.slideNumber;\n\t\t\t}\n\n\t\t\tswitch( format ) {\n\t\t\t\tcase 'c':\n\t\t\t\t\tvalue.push( getSlidePastCount() + 1 );\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'c/t':\n\t\t\t\t\tvalue.push( getSlidePastCount() + 1, '/', getTotalSlides() );\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'h/v':\n\t\t\t\t\tvalue.push( indexh + 1 );\n\t\t\t\t\tif( isVerticalSlide() ) value.push( '/', indexv + 1 );\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tvalue.push( indexh + 1 );\n\t\t\t\t\tif( isVerticalSlide() ) value.push( '.', indexv + 1 );\n\t\t\t}\n\n\t\t\tdom.slideNumber.innerHTML = formatSlideNumber( value[0], value[1], value[2] );\n\t\t}\n\n\t}\n\n\t/**\n\t * Applies HTML formatting to a slide number before it's\n\t * written to the DOM.\n\t *\n\t * @param {number} a Current slide\n\t * @param {string} delimiter Character to separate slide numbers\n\t * @param {(number|*)} b Total slides\n\t * @return {string} HTML string fragment\n\t */\n\tfunction formatSlideNumber( a, delimiter, b ) {\n\n\t\tif( typeof b === 'number' && !isNaN( b ) ) {\n\t\t\treturn '<span class=\"slide-number-a\">'+ a +'</span>' +\n\t\t\t\t\t'<span class=\"slide-number-delimiter\">'+ delimiter +'</span>' +\n\t\t\t\t\t'<span class=\"slide-number-b\">'+ b +'</span>';\n\t\t}\n\t\telse {\n\t\t\treturn '<span class=\"slide-number-a\">'+ a +'</span>';\n\t\t}\n\n\t}\n\n\t/**\n\t * Updates the state of all control/navigation arrows.\n\t */\n\tfunction updateControls() {\n\n\t\tvar routes = availableRoutes();\n\t\tvar fragments = availableFragments();\n\n\t\t// Remove the 'enabled' class from all directions\n\t\tdom.controlsLeft.concat( dom.controlsRight )\n\t\t\t\t\t\t.concat( dom.controlsUp )\n\t\t\t\t\t\t.concat( dom.controlsDown )\n\t\t\t\t\t\t.concat( dom.controlsPrev )\n\t\t\t\t\t\t.concat( dom.controlsNext ).forEach( function( node ) {\n\t\t\tnode.classList.remove( 'enabled' );\n\t\t\tnode.classList.remove( 'fragmented' );\n\n\t\t\t// Set 'disabled' attribute on all directions\n\t\t\tnode.setAttribute( 'disabled', 'disabled' );\n\t\t} );\n\n\t\t// Add the 'enabled' class to the available routes; remove 'disabled' attribute to enable buttons\n\t\tif( routes.left ) dom.controlsLeft.forEach( function( el ) { el.classList.add( 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\t\tif( routes.right ) dom.controlsRight.forEach( function( el ) { el.classList.add( 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\t\tif( routes.up ) dom.controlsUp.forEach( function( el ) { el.classList.add( 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\t\tif( routes.down ) dom.controlsDown.forEach( function( el ) { el.classList.add( 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\n\t\t// Prev/next buttons\n\t\tif( routes.left || routes.up ) dom.controlsPrev.forEach( function( el ) { el.classList.add( 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\t\tif( routes.right || routes.down ) dom.controlsNext.forEach( function( el ) { el.classList.add( 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\n\t\t// Highlight fragment directions\n\t\tif( currentSlide ) {\n\n\t\t\t// Always apply fragment decorator to prev/next buttons\n\t\t\tif( fragments.prev ) dom.controlsPrev.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\t\t\tif( fragments.next ) dom.controlsNext.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\n\t\t\t// Apply fragment decorators to directional buttons based on\n\t\t\t// what slide axis they are in\n\t\t\tif( isVerticalSlide( currentSlide ) ) {\n\t\t\t\tif( fragments.prev ) dom.controlsUp.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\t\t\t\tif( fragments.next ) dom.controlsDown.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif( fragments.prev ) dom.controlsLeft.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\t\t\t\tif( fragments.next ) dom.controlsRight.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); el.removeAttribute( 'disabled' ); } );\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Updates the background elements to reflect the current\n\t * slide.\n\t *\n\t * @param {boolean} includeAll If true, the backgrounds of\n\t * all vertical slides (not just the present) will be updated.\n\t */\n\tfunction updateBackground( includeAll ) {\n\n\t\tvar currentBackground = null;\n\n\t\t// Reverse past/future classes when in RTL mode\n\t\tvar horizontalPast = config.rtl ? 'future' : 'past',\n\t\t\thorizontalFuture = config.rtl ? 'past' : 'future';\n\n\t\t// Update the classes of all backgrounds to match the\n\t\t// states of their slides (past/present/future)\n\t\ttoArray( dom.background.childNodes ).forEach( function( backgroundh, h ) {\n\n\t\t\tbackgroundh.classList.remove( 'past' );\n\t\t\tbackgroundh.classList.remove( 'present' );\n\t\t\tbackgroundh.classList.remove( 'future' );\n\n\t\t\tif( h < indexh ) {\n\t\t\t\tbackgroundh.classList.add( horizontalPast );\n\t\t\t}\n\t\t\telse if ( h > indexh ) {\n\t\t\t\tbackgroundh.classList.add( horizontalFuture );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tbackgroundh.classList.add( 'present' );\n\n\t\t\t\t// Store a reference to the current background element\n\t\t\t\tcurrentBackground = backgroundh;\n\t\t\t}\n\n\t\t\tif( includeAll || h === indexh ) {\n\t\t\t\ttoArray( backgroundh.querySelectorAll( '.slide-background' ) ).forEach( function( backgroundv, v ) {\n\n\t\t\t\t\tbackgroundv.classList.remove( 'past' );\n\t\t\t\t\tbackgroundv.classList.remove( 'present' );\n\t\t\t\t\tbackgroundv.classList.remove( 'future' );\n\n\t\t\t\t\tif( v < indexv ) {\n\t\t\t\t\t\tbackgroundv.classList.add( 'past' );\n\t\t\t\t\t}\n\t\t\t\t\telse if ( v > indexv ) {\n\t\t\t\t\t\tbackgroundv.classList.add( 'future' );\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tbackgroundv.classList.add( 'present' );\n\n\t\t\t\t\t\t// Only if this is the present horizontal and vertical slide\n\t\t\t\t\t\tif( h === indexh ) currentBackground = backgroundv;\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\t\t\t}\n\n\t\t} );\n\n\t\t// Stop content inside of previous backgrounds\n\t\tif( previousBackground ) {\n\n\t\t\tstopEmbeddedContent( previousBackground );\n\n\t\t}\n\n\t\t// Start content in the current background\n\t\tif( currentBackground ) {\n\n\t\t\tstartEmbeddedContent( currentBackground );\n\n\t\t\tvar backgroundImageURL = currentBackground.style.backgroundImage || '';\n\n\t\t\t// Restart GIFs (doesn't work in Firefox)\n\t\t\tif( /\\.gif/i.test( backgroundImageURL ) ) {\n\t\t\t\tcurrentBackground.style.backgroundImage = '';\n\t\t\t\twindow.getComputedStyle( currentBackground ).opacity;\n\t\t\t\tcurrentBackground.style.backgroundImage = backgroundImageURL;\n\t\t\t}\n\n\t\t\t// Don't transition between identical backgrounds. This\n\t\t\t// prevents unwanted flicker.\n\t\t\tvar previousBackgroundHash = previousBackground ? previousBackground.getAttribute( 'data-background-hash' ) : null;\n\t\t\tvar currentBackgroundHash = currentBackground.getAttribute( 'data-background-hash' );\n\t\t\tif( currentBackgroundHash && currentBackgroundHash === previousBackgroundHash && currentBackground !== previousBackground ) {\n\t\t\t\tdom.background.classList.add( 'no-transition' );\n\t\t\t}\n\n\t\t\tpreviousBackground = currentBackground;\n\n\t\t}\n\n\t\t// If there's a background brightness flag for this slide,\n\t\t// bubble it to the .reveal container\n\t\tif( currentSlide ) {\n\t\t\t[ 'has-light-background', 'has-dark-background' ].forEach( function( classToBubble ) {\n\t\t\t\tif( currentSlide.classList.contains( classToBubble ) ) {\n\t\t\t\t\tdom.wrapper.classList.add( classToBubble );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdom.wrapper.classList.remove( classToBubble );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Allow the first background to apply without transition\n\t\tsetTimeout( function() {\n\t\t\tdom.background.classList.remove( 'no-transition' );\n\t\t}, 1 );\n\n\t}\n\n\t/**\n\t * Updates the position of the parallax background based\n\t * on the current slide index.\n\t */\n\tfunction updateParallax() {\n\n\t\tif( config.parallaxBackgroundImage ) {\n\n\t\t\tvar horizontalSlides = dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ),\n\t\t\t\tverticalSlides = dom.wrapper.querySelectorAll( VERTICAL_SLIDES_SELECTOR );\n\n\t\t\tvar backgroundSize = dom.background.style.backgroundSize.split( ' ' ),\n\t\t\t\tbackgroundWidth, backgroundHeight;\n\n\t\t\tif( backgroundSize.length === 1 ) {\n\t\t\t\tbackgroundWidth = backgroundHeight = parseInt( backgroundSize[0], 10 );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tbackgroundWidth = parseInt( backgroundSize[0], 10 );\n\t\t\t\tbackgroundHeight = parseInt( backgroundSize[1], 10 );\n\t\t\t}\n\n\t\t\tvar slideWidth = dom.background.offsetWidth,\n\t\t\t\thorizontalSlideCount = horizontalSlides.length,\n\t\t\t\thorizontalOffsetMultiplier,\n\t\t\t\thorizontalOffset;\n\n\t\t\tif( typeof config.parallaxBackgroundHorizontal === 'number' ) {\n\t\t\t\thorizontalOffsetMultiplier = config.parallaxBackgroundHorizontal;\n\t\t\t}\n\t\t\telse {\n\t\t\t\thorizontalOffsetMultiplier = horizontalSlideCount > 1 ? ( backgroundWidth - slideWidth ) / ( horizontalSlideCount-1 ) : 0;\n\t\t\t}\n\n\t\t\thorizontalOffset = horizontalOffsetMultiplier * indexh * -1;\n\n\t\t\tvar slideHeight = dom.background.offsetHeight,\n\t\t\t\tverticalSlideCount = verticalSlides.length,\n\t\t\t\tverticalOffsetMultiplier,\n\t\t\t\tverticalOffset;\n\n\t\t\tif( typeof config.parallaxBackgroundVertical === 'number' ) {\n\t\t\t\tverticalOffsetMultiplier = config.parallaxBackgroundVertical;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tverticalOffsetMultiplier = ( backgroundHeight - slideHeight ) / ( verticalSlideCount-1 );\n\t\t\t}\n\n\t\t\tverticalOffset = verticalSlideCount > 0 ? verticalOffsetMultiplier * indexv : 0;\n\n\t\t\tdom.background.style.backgroundPosition = horizontalOffset + 'px ' + -verticalOffset + 'px';\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Called when the given slide is within the configured view\n\t * distance. Shows the slide element and loads any content\n\t * that is set to load lazily (data-src).\n\t *\n\t * @param {HTMLElement} slide Slide to show\n\t */\n\t/**\n\t * Called when the given slide is within the configured view\n\t * distance. Shows the slide element and loads any content\n\t * that is set to load lazily (data-src).\n\t *\n\t * @param {HTMLElement} slide Slide to show\n\t */\n\tfunction showSlide( slide ) {\n\n\t\t// Show the slide element\n\t\tslide.style.display = config.display;\n\n\t\t// Media elements with data-src attributes\n\t\ttoArray( slide.querySelectorAll( 'img[data-src], video[data-src], audio[data-src]' ) ).forEach( function( element ) {\n\t\t\telement.setAttribute( 'src', element.getAttribute( 'data-src' ) );\n\t\t\telement.removeAttribute( 'data-src' );\n\t\t} );\n\n\t\t// Media elements with <source> children\n\t\ttoArray( slide.querySelectorAll( 'video, audio' ) ).forEach( function( media ) {\n\t\t\tvar sources = 0;\n\n\t\t\ttoArray( media.querySelectorAll( 'source[data-src]' ) ).forEach( function( source ) {\n\t\t\t\tsource.setAttribute( 'src', source.getAttribute( 'data-src' ) );\n\t\t\t\tsource.removeAttribute( 'data-src' );\n\t\t\t\tsources += 1;\n\t\t\t} );\n\n\t\t\t// If we rewrote sources for this video/audio element, we need\n\t\t\t// to manually tell it to load from its new origin\n\t\t\tif( sources > 0 ) {\n\t\t\t\tmedia.load();\n\t\t\t}\n\t\t} );\n\n\n\t\t// Show the corresponding background element\n\t\tvar indices = getIndices( slide );\n\t\tvar background = getSlideBackground( indices.h, indices.v );\n\t\tif( background ) {\n\t\t\tbackground.style.display = 'block';\n\n\t\t\t// If the background contains media, load it\n\t\t\tif( background.hasAttribute( 'data-loaded' ) === false ) {\n\t\t\t\tbackground.setAttribute( 'data-loaded', 'true' );\n\n\t\t\t\tvar backgroundImage = slide.getAttribute( 'data-background-image' ),\n\t\t\t\t\tbackgroundVideo = slide.getAttribute( 'data-background-video' ),\n\t\t\t\t\tbackgroundVideoLoop = slide.hasAttribute( 'data-background-video-loop' ),\n\t\t\t\t\tbackgroundVideoMuted = slide.hasAttribute( 'data-background-video-muted' ),\n\t\t\t\t\tbackgroundIframe = slide.getAttribute( 'data-background-iframe' );\n\n\t\t\t\t// Images\n\t\t\t\tif( backgroundImage ) {\n\t\t\t\t\tbackground.style.backgroundImage = 'url('+ backgroundImage +')';\n\t\t\t\t}\n\t\t\t\t// Videos\n\t\t\t\telse if ( backgroundVideo && !isSpeakerNotes() ) {\n\t\t\t\t\tvar video = document.createElement( 'video' );\n\n\t\t\t\t\tif( backgroundVideoLoop ) {\n\t\t\t\t\t\tvideo.setAttribute( 'loop', '' );\n\t\t\t\t\t}\n\n\t\t\t\t\tif( backgroundVideoMuted ) {\n\t\t\t\t\t\tvideo.muted = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Inline video playback works (at least in Mobile Safari) as\n\t\t\t\t\t// long as the video is muted and the `playsinline` attribute is\n\t\t\t\t\t// present\n\t\t\t\t\tif( isMobileDevice ) {\n\t\t\t\t\t\tvideo.muted = true;\n\t\t\t\t\t\tvideo.autoplay = true;\n\t\t\t\t\t\tvideo.setAttribute( 'playsinline', '' );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support comma separated lists of video sources\n\t\t\t\t\tbackgroundVideo.split( ',' ).forEach( function( source ) {\n\t\t\t\t\t\tvideo.innerHTML += '<source src=\"'+ source +'\">';\n\t\t\t\t\t} );\n\n\t\t\t\t\tbackground.appendChild( video );\n\t\t\t\t}\n\t\t\t\t// Iframes\n\t\t\t\telse if( backgroundIframe ) {\n\t\t\t\t\tvar iframe = document.createElement( 'iframe' );\n\t\t\t\t\tiframe.setAttribute( 'allowfullscreen', '' );\n\t\t\t\t\tiframe.setAttribute( 'mozallowfullscreen', '' );\n\t\t\t\t\tiframe.setAttribute( 'webkitallowfullscreen', '' );\n\n\t\t\t\t\t// Only load autoplaying content when the slide is shown to\n\t\t\t\t\t// avoid having it play in the background\n\t\t\t\t\tif( /autoplay=(1|true|yes)/gi.test( backgroundIframe ) ) {\n\t\t\t\t\t\tiframe.setAttribute( 'data-src', backgroundIframe );\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tiframe.setAttribute( 'src', backgroundIframe );\n\t\t\t\t\t}\n\n\t\t\t\t\tiframe.style.width = '100%';\n\t\t\t\t\tiframe.style.height = '100%';\n\t\t\t\t\tiframe.style.maxHeight = '100%';\n\t\t\t\t\tiframe.style.maxWidth = '100%';\n\n\t\t\t\t\tbackground.appendChild( iframe );\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Called when the given slide is moved outside of the\n\t * configured view distance.\n\t *\n\t * @param {HTMLElement} slide\n\t */\n\tfunction hideSlide( slide ) {\n\n\t\t// Hide the slide element\n\t\tslide.style.display = 'none';\n\n\t\t// Hide the corresponding background element\n\t\tvar indices = getIndices( slide );\n\t\tvar background = getSlideBackground( indices.h, indices.v );\n\t\tif( background ) {\n\t\t\tbackground.style.display = 'none';\n\t\t}\n\n\t}\n\n\t/**\n\t * Determine what available routes there are for navigation.\n\t *\n\t * @return {{left: boolean, right: boolean, up: boolean, down: boolean}}\n\t */\n\tfunction availableRoutes() {\n\n\t\tvar horizontalSlides = dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ),\n\t\t\tverticalSlides = dom.wrapper.querySelectorAll( VERTICAL_SLIDES_SELECTOR );\n\n\t\tvar routes = {\n\t\t\tleft: indexh > 0 || config.loop,\n\t\t\tright: indexh < horizontalSlides.length - 1 || config.loop,\n\t\t\tup: indexv > 0,\n\t\t\tdown: indexv < verticalSlides.length - 1\n\t\t};\n\n\t\t// reverse horizontal controls for rtl\n\t\tif( config.rtl ) {\n\t\t\tvar left = routes.left;\n\t\t\troutes.left = routes.right;\n\t\t\troutes.right = left;\n\t\t}\n\n\t\treturn routes;\n\n\t}\n\n\t/**\n\t * Returns an object describing the available fragment\n\t * directions.\n\t *\n\t * @return {{prev: boolean, next: boolean}}\n\t */\n\tfunction availableFragments() {\n\n\t\tif( currentSlide && config.fragments ) {\n\t\t\tvar fragments = currentSlide.querySelectorAll( '.fragment' );\n\t\t\tvar hiddenFragments = currentSlide.querySelectorAll( '.fragment:not(.visible)' );\n\n\t\t\treturn {\n\t\t\t\tprev: fragments.length - hiddenFragments.length > 0,\n\t\t\t\tnext: !!hiddenFragments.length\n\t\t\t};\n\t\t}\n\t\telse {\n\t\t\treturn { prev: false, next: false };\n\t\t}\n\n\t}\n\n\t/**\n\t * Enforces origin-specific format rules for embedded media.\n\t */\n\tfunction formatEmbeddedContent() {\n\n\t\tvar _appendParamToIframeSource = function( sourceAttribute, sourceURL, param ) {\n\t\t\ttoArray( dom.slides.querySelectorAll( 'iframe['+ sourceAttribute +'*=\"'+ sourceURL +'\"]' ) ).forEach( function( el ) {\n\t\t\t\tvar src = el.getAttribute( sourceAttribute );\n\t\t\t\tif( src && src.indexOf( param ) === -1 ) {\n\t\t\t\t\tel.setAttribute( sourceAttribute, src + ( !/\\?/.test( src ) ? '?' : '&' ) + param );\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\t// YouTube frames must include \"?enablejsapi=1\"\n\t\t_appendParamToIframeSource( 'src', 'youtube.com/embed/', 'enablejsapi=1' );\n\t\t_appendParamToIframeSource( 'data-src', 'youtube.com/embed/', 'enablejsapi=1' );\n\n\t\t// Vimeo frames must include \"?api=1\"\n\t\t_appendParamToIframeSource( 'src', 'player.vimeo.com/', 'api=1' );\n\t\t_appendParamToIframeSource( 'data-src', 'player.vimeo.com/', 'api=1' );\n\n\t}\n\n\t/**\n\t * Start playback of any embedded content inside of\n\t * the given element.\n\t *\n\t * @param {HTMLElement} element\n\t */\n\tfunction startEmbeddedContent( element ) {\n\n\t\tif( element && !isSpeakerNotes() ) {\n\n\t\t\t// Restart GIFs\n\t\t\ttoArray( element.querySelectorAll( 'img[src$=\".gif\"]' ) ).forEach( function( el ) {\n\t\t\t\t// Setting the same unchanged source like this was confirmed\n\t\t\t\t// to work in Chrome, FF & Safari\n\t\t\t\tel.setAttribute( 'src', el.getAttribute( 'src' ) );\n\t\t\t} );\n\n\t\t\t// HTML5 media elements\n\t\t\ttoArray( element.querySelectorAll( 'video, audio' ) ).forEach( function( el ) {\n\t\t\t\tif( closestParent( el, '.fragment' ) && !closestParent( el, '.fragment.visible' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Prefer an explicit global autoplay setting\n\t\t\t\tvar autoplay = config.autoPlayMedia;\n\n\t\t\t\t// If no global setting is available, fall back on the element's\n\t\t\t\t// own autoplay setting\n\t\t\t\tif( typeof autoplay !== 'boolean' ) {\n\t\t\t\t\tautoplay = el.hasAttribute( 'data-autoplay' ) || !!closestParent( el, '.slide-background' );\n\t\t\t\t}\n\n\t\t\t\tif( autoplay && typeof el.play === 'function' ) {\n\n\t\t\t\t\tif( el.readyState > 1 ) {\n\t\t\t\t\t\tstartEmbeddedMedia( { target: el } );\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tel.removeEventListener( 'loadeddata', startEmbeddedMedia ); // remove first to avoid dupes\n\t\t\t\t\t\tel.addEventListener( 'loadeddata', startEmbeddedMedia );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Normal iframes\n\t\t\ttoArray( element.querySelectorAll( 'iframe[src]' ) ).forEach( function( el ) {\n\t\t\t\tif( closestParent( el, '.fragment' ) && !closestParent( el, '.fragment.visible' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tstartEmbeddedIframe( { target: el } );\n\t\t\t} );\n\n\t\t\t// Lazy loading iframes\n\t\t\ttoArray( element.querySelectorAll( 'iframe[data-src]' ) ).forEach( function( el ) {\n\t\t\t\tif( closestParent( el, '.fragment' ) && !closestParent( el, '.fragment.visible' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif( el.getAttribute( 'src' ) !== el.getAttribute( 'data-src' ) ) {\n\t\t\t\t\tel.removeEventListener( 'load', startEmbeddedIframe ); // remove first to avoid dupes\n\t\t\t\t\tel.addEventListener( 'load', startEmbeddedIframe );\n\t\t\t\t\tel.setAttribute( 'src', el.getAttribute( 'data-src' ) );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Starts playing an embedded video/audio element after\n\t * it has finished loading.\n\t *\n\t * @param {object} event\n\t */\n\tfunction startEmbeddedMedia( event ) {\n\n\t\tvar isAttachedToDOM = !!closestParent( event.target, 'html' ),\n\t\t\tisVisible \t\t= !!closestParent( event.target, '.present' );\n\n\t\tif( isAttachedToDOM && isVisible ) {\n\t\t\tevent.target.currentTime = 0;\n\t\t\tevent.target.play();\n\t\t}\n\n\t\tevent.target.removeEventListener( 'loadeddata', startEmbeddedMedia );\n\n\t}\n\n\t/**\n\t * \"Starts\" the content of an embedded iframe using the\n\t * postMessage API.\n\t *\n\t * @param {object} event\n\t */\n\tfunction startEmbeddedIframe( event ) {\n\n\t\tvar iframe = event.target;\n\n\t\tif( iframe && iframe.contentWindow ) {\n\n\t\t\tvar isAttachedToDOM = !!closestParent( event.target, 'html' ),\n\t\t\t\tisVisible \t\t= !!closestParent( event.target, '.present' );\n\n\t\t\tif( isAttachedToDOM && isVisible ) {\n\n\t\t\t\t// Prefer an explicit global autoplay setting\n\t\t\t\tvar autoplay = config.autoPlayMedia;\n\n\t\t\t\t// If no global setting is available, fall back on the element's\n\t\t\t\t// own autoplay setting\n\t\t\t\tif( typeof autoplay !== 'boolean' ) {\n\t\t\t\t\tautoplay = iframe.hasAttribute( 'data-autoplay' ) || !!closestParent( iframe, '.slide-background' );\n\t\t\t\t}\n\n\t\t\t\t// YouTube postMessage API\n\t\t\t\tif( /youtube\\.com\\/embed\\//.test( iframe.getAttribute( 'src' ) ) && autoplay ) {\n\t\t\t\t\tiframe.contentWindow.postMessage( '{\"event\":\"command\",\"func\":\"playVideo\",\"args\":\"\"}', '*' );\n\t\t\t\t}\n\t\t\t\t// Vimeo postMessage API\n\t\t\t\telse if( /player\\.vimeo\\.com\\//.test( iframe.getAttribute( 'src' ) ) && autoplay ) {\n\t\t\t\t\tiframe.contentWindow.postMessage( '{\"method\":\"play\"}', '*' );\n\t\t\t\t}\n\t\t\t\t// Generic postMessage API\n\t\t\t\telse {\n\t\t\t\t\tiframe.contentWindow.postMessage( 'slide:start', '*' );\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Stop playback of any embedded content inside of\n\t * the targeted slide.\n\t *\n\t * @param {HTMLElement} element\n\t */\n\tfunction stopEmbeddedContent( element ) {\n\n\t\tif( element && element.parentNode ) {\n\t\t\t// HTML5 media elements\n\t\t\ttoArray( element.querySelectorAll( 'video, audio' ) ).forEach( function( el ) {\n\t\t\t\tif( !el.hasAttribute( 'data-ignore' ) && typeof el.pause === 'function' ) {\n\t\t\t\t\tel.setAttribute('data-paused-by-reveal', '');\n\t\t\t\t\tel.pause();\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Generic postMessage API for non-lazy loaded iframes\n\t\t\ttoArray( element.querySelectorAll( 'iframe' ) ).forEach( function( el ) {\n\t\t\t\tif( el.contentWindow ) el.contentWindow.postMessage( 'slide:stop', '*' );\n\t\t\t\tel.removeEventListener( 'load', startEmbeddedIframe );\n\t\t\t});\n\n\t\t\t// YouTube postMessage API\n\t\t\ttoArray( element.querySelectorAll( 'iframe[src*=\"youtube.com/embed/\"]' ) ).forEach( function( el ) {\n\t\t\t\tif( !el.hasAttribute( 'data-ignore' ) && el.contentWindow && typeof el.contentWindow.postMessage === 'function' ) {\n\t\t\t\t\tel.contentWindow.postMessage( '{\"event\":\"command\",\"func\":\"pauseVideo\",\"args\":\"\"}', '*' );\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Vimeo postMessage API\n\t\t\ttoArray( element.querySelectorAll( 'iframe[src*=\"player.vimeo.com/\"]' ) ).forEach( function( el ) {\n\t\t\t\tif( !el.hasAttribute( 'data-ignore' ) && el.contentWindow && typeof el.contentWindow.postMessage === 'function' ) {\n\t\t\t\t\tel.contentWindow.postMessage( '{\"method\":\"pause\"}', '*' );\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Lazy loading iframes\n\t\t\ttoArray( element.querySelectorAll( 'iframe[data-src]' ) ).forEach( function( el ) {\n\t\t\t\t// Only removing the src doesn't actually unload the frame\n\t\t\t\t// in all browsers (Firefox) so we set it to blank first\n\t\t\t\tel.setAttribute( 'src', 'about:blank' );\n\t\t\t\tel.removeAttribute( 'src' );\n\t\t\t} );\n\t\t}\n\n\t}\n\n\t/**\n\t * Returns the number of past slides. This can be used as a global\n\t * flattened index for slides.\n\t *\n\t * @return {number} Past slide count\n\t */\n\tfunction getSlidePastCount() {\n\n\t\tvar horizontalSlides = toArray( dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) );\n\n\t\t// The number of past slides\n\t\tvar pastCount = 0;\n\n\t\t// Step through all slides and count the past ones\n\t\tmainLoop: for( var i = 0; i < horizontalSlides.length; i++ ) {\n\n\t\t\tvar horizontalSlide = horizontalSlides[i];\n\t\t\tvar verticalSlides = toArray( horizontalSlide.querySelectorAll( 'section' ) );\n\n\t\t\tfor( var j = 0; j < verticalSlides.length; j++ ) {\n\n\t\t\t\t// Stop as soon as we arrive at the present\n\t\t\t\tif( verticalSlides[j].classList.contains( 'present' ) ) {\n\t\t\t\t\tbreak mainLoop;\n\t\t\t\t}\n\n\t\t\t\tpastCount++;\n\n\t\t\t}\n\n\t\t\t// Stop as soon as we arrive at the present\n\t\t\tif( horizontalSlide.classList.contains( 'present' ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Don't count the wrapping section for vertical slides\n\t\t\tif( horizontalSlide.classList.contains( 'stack' ) === false ) {\n\t\t\t\tpastCount++;\n\t\t\t}\n\n\t\t}\n\n\t\treturn pastCount;\n\n\t}\n\n\t/**\n\t * Returns a value ranging from 0-1 that represents\n\t * how far into the presentation we have navigated.\n\t *\n\t * @return {number}\n\t */\n\tfunction getProgress() {\n\n\t\t// The number of past and total slides\n\t\tvar totalCount = getTotalSlides();\n\t\tvar pastCount = getSlidePastCount();\n\n\t\tif( currentSlide ) {\n\n\t\t\tvar allFragments = currentSlide.querySelectorAll( '.fragment' );\n\n\t\t\t// If there are fragments in the current slide those should be\n\t\t\t// accounted for in the progress.\n\t\t\tif( allFragments.length > 0 ) {\n\t\t\t\tvar visibleFragments = currentSlide.querySelectorAll( '.fragment.visible' );\n\n\t\t\t\t// This value represents how big a portion of the slide progress\n\t\t\t\t// that is made up by its fragments (0-1)\n\t\t\t\tvar fragmentWeight = 0.9;\n\n\t\t\t\t// Add fragment progress to the past slide count\n\t\t\t\tpastCount += ( visibleFragments.length / allFragments.length ) * fragmentWeight;\n\t\t\t}\n\n\t\t}\n\n\t\treturn pastCount / ( totalCount - 1 );\n\n\t}\n\n\t/**\n\t * Checks if this presentation is running inside of the\n\t * speaker notes window.\n\t *\n\t * @return {boolean}\n\t */\n\tfunction isSpeakerNotes() {\n\n\t\treturn !!window.location.search.match( /receiver/gi );\n\n\t}\n\n\t/**\n\t * Reads the current URL (hash) and navigates accordingly.\n\t */\n\tfunction readURL() {\n\n\t\tvar hash = window.location.hash;\n\n\t\t// Attempt to parse the hash as either an index or name\n\t\tvar bits = hash.slice( 2 ).split( '/' ),\n\t\t\tname = hash.replace( /#|\\//gi, '' );\n\n\t\t// If the first bit is invalid and there is a name we can\n\t\t// assume that this is a named link\n\t\tif( isNaN( parseInt( bits[0], 10 ) ) && name.length ) {\n\t\t\tvar element;\n\n\t\t\t// Ensure the named link is a valid HTML ID attribute\n\t\t\tif( /^[a-zA-Z][\\w:.-]*$/.test( name ) ) {\n\t\t\t\t// Find the slide with the specified ID\n\t\t\t\telement = document.getElementById( name );\n\t\t\t}\n\n\t\t\tif( element ) {\n\t\t\t\t// Find the position of the named slide and navigate to it\n\t\t\t\tvar indices = Reveal.getIndices( element );\n\t\t\t\tslide( indices.h, indices.v );\n\t\t\t}\n\t\t\t// If the slide doesn't exist, navigate to the current slide\n\t\t\telse {\n\t\t\t\tslide( indexh || 0, indexv || 0 );\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t// Read the index components of the hash\n\t\t\tvar h = parseInt( bits[0], 10 ) || 0,\n\t\t\t\tv = parseInt( bits[1], 10 ) || 0;\n\n\t\t\tif( h !== indexh || v !== indexv ) {\n\t\t\t\tslide( h, v );\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Updates the page URL (hash) to reflect the current\n\t * state.\n\t *\n\t * @param {number} delay The time in ms to wait before\n\t * writing the hash\n\t */\n\tfunction writeURL( delay ) {\n\n\t\tif( config.history ) {\n\n\t\t\t// Make sure there's never more than one timeout running\n\t\t\tclearTimeout( writeURLTimeout );\n\n\t\t\t// If a delay is specified, timeout this call\n\t\t\tif( typeof delay === 'number' ) {\n\t\t\t\twriteURLTimeout = setTimeout( writeURL, delay );\n\t\t\t}\n\t\t\telse if( currentSlide ) {\n\t\t\t\tvar url = '/';\n\n\t\t\t\t// Attempt to create a named link based on the slide's ID\n\t\t\t\tvar id = currentSlide.getAttribute( 'id' );\n\t\t\t\tif( id ) {\n\t\t\t\t\tid = id.replace( /[^a-zA-Z0-9\\-\\_\\:\\.]/g, '' );\n\t\t\t\t}\n\n\t\t\t\t// If the current slide has an ID, use that as a named link\n\t\t\t\tif( typeof id === 'string' && id.length ) {\n\t\t\t\t\turl = '/' + id;\n\t\t\t\t}\n\t\t\t\t// Otherwise use the /h/v index\n\t\t\t\telse {\n\t\t\t\t\tif( indexh > 0 || indexv > 0 ) url += indexh;\n\t\t\t\t\tif( indexv > 0 ) url += '/' + indexv;\n\t\t\t\t}\n\n\t\t\t\twindow.location.hash = url;\n\t\t\t}\n\t\t}\n\n\t}\n\t/**\n\t * Retrieves the h/v location and fragment of the current,\n\t * or specified, slide.\n\t *\n\t * @param {HTMLElement} [slide] If specified, the returned\n\t * index will be for this slide rather than the currently\n\t * active one\n\t *\n\t * @return {{h: number, v: number, f: number}}\n\t */\n\tfunction getIndices( slide ) {\n\n\t\t// By default, return the current indices\n\t\tvar h = indexh,\n\t\t\tv = indexv,\n\t\t\tf;\n\n\t\t// If a slide is specified, return the indices of that slide\n\t\tif( slide ) {\n\t\t\tvar isVertical = isVerticalSlide( slide );\n\t\t\tvar slideh = isVertical ? slide.parentNode : slide;\n\n\t\t\t// Select all horizontal slides\n\t\t\tvar horizontalSlides = toArray( dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) );\n\n\t\t\t// Now that we know which the horizontal slide is, get its index\n\t\t\th = Math.max( horizontalSlides.indexOf( slideh ), 0 );\n\n\t\t\t// Assume we're not vertical\n\t\t\tv = undefined;\n\n\t\t\t// If this is a vertical slide, grab the vertical index\n\t\t\tif( isVertical ) {\n\t\t\t\tv = Math.max( toArray( slide.parentNode.querySelectorAll( 'section' ) ).indexOf( slide ), 0 );\n\t\t\t}\n\t\t}\n\n\t\tif( !slide && currentSlide ) {\n\t\t\tvar hasFragments = currentSlide.querySelectorAll( '.fragment' ).length > 0;\n\t\t\tif( hasFragments ) {\n\t\t\t\tvar currentFragment = currentSlide.querySelector( '.current-fragment' );\n\t\t\t\tif( currentFragment && currentFragment.hasAttribute( 'data-fragment-index' ) ) {\n\t\t\t\t\tf = parseInt( currentFragment.getAttribute( 'data-fragment-index' ), 10 );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tf = currentSlide.querySelectorAll( '.fragment.visible' ).length - 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn { h: h, v: v, f: f };\n\n\t}\n\n\t/**\n\t * Retrieves all slides in this presentation.\n\t */\n\tfunction getSlides() {\n\n\t\treturn toArray( dom.wrapper.querySelectorAll( SLIDES_SELECTOR + ':not(.stack)' ));\n\n\t}\n\n\t/**\n\t * Retrieves the total number of slides in this presentation.\n\t *\n\t * @return {number}\n\t */\n\tfunction getTotalSlides() {\n\n\t\treturn getSlides().length;\n\n\t}\n\n\t/**\n\t * Returns the slide element matching the specified index.\n\t *\n\t * @return {HTMLElement}\n\t */\n\tfunction getSlide( x, y ) {\n\n\t\tvar horizontalSlide = dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR )[ x ];\n\t\tvar verticalSlides = horizontalSlide && horizontalSlide.querySelectorAll( 'section' );\n\n\t\tif( verticalSlides && verticalSlides.length && typeof y === 'number' ) {\n\t\t\treturn verticalSlides ? verticalSlides[ y ] : undefined;\n\t\t}\n\n\t\treturn horizontalSlide;\n\n\t}\n\n\t/**\n\t * Returns the background element for the given slide.\n\t * All slides, even the ones with no background properties\n\t * defined, have a background element so as long as the\n\t * index is valid an element will be returned.\n\t *\n\t * @param {number} x Horizontal background index\n\t * @param {number} y Vertical background index\n\t * @return {(HTMLElement[]|*)}\n\t */\n\tfunction getSlideBackground( x, y ) {\n\n\t\t// When printing to PDF the slide backgrounds are nested\n\t\t// inside of the slides\n\t\tif( isPrintingPDF() ) {\n\t\t\tvar slide = getSlide( x, y );\n\t\t\tif( slide ) {\n\t\t\t\treturn slide.slideBackgroundElement;\n\t\t\t}\n\n\t\t\treturn undefined;\n\t\t}\n\n\t\tvar horizontalBackground = dom.wrapper.querySelectorAll( '.backgrounds>.slide-background' )[ x ];\n\t\tvar verticalBackgrounds = horizontalBackground && horizontalBackground.querySelectorAll( '.slide-background' );\n\n\t\tif( verticalBackgrounds && verticalBackgrounds.length && typeof y === 'number' ) {\n\t\t\treturn verticalBackgrounds ? verticalBackgrounds[ y ] : undefined;\n\t\t}\n\n\t\treturn horizontalBackground;\n\n\t}\n\n\t/**\n\t * Retrieves the speaker notes from a slide. Notes can be\n\t * defined in two ways:\n\t * 1. As a data-notes attribute on the slide <section>\n\t * 2. As an <aside class=\"notes\"> inside of the slide\n\t *\n\t * @param {HTMLElement} [slide=currentSlide]\n\t * @return {(string|null)}\n\t */\n\tfunction getSlideNotes( slide ) {\n\n\t\t// Default to the current slide\n\t\tslide = slide || currentSlide;\n\n\t\t// Notes can be specified via the data-notes attribute...\n\t\tif( slide.hasAttribute( 'data-notes' ) ) {\n\t\t\treturn slide.getAttribute( 'data-notes' );\n\t\t}\n\n\t\t// ... or using an <aside class=\"notes\"> element\n\t\tvar notesElement = slide.querySelector( 'aside.notes' );\n\t\tif( notesElement ) {\n\t\t\treturn notesElement.innerHTML;\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\t/**\n\t * Retrieves the current state of the presentation as\n\t * an object. This state can then be restored at any\n\t * time.\n\t *\n\t * @return {{indexh: number, indexv: number, indexf: number, paused: boolean, overview: boolean}}\n\t */\n\tfunction getState() {\n\n\t\tvar indices = getIndices();\n\n\t\treturn {\n\t\t\tindexh: indices.h,\n\t\t\tindexv: indices.v,\n\t\t\tindexf: indices.f,\n\t\t\tpaused: isPaused(),\n\t\t\toverview: isOverview()\n\t\t};\n\n\t}\n\n\t/**\n\t * Restores the presentation to the given state.\n\t *\n\t * @param {object} state As generated by getState()\n\t * @see {@link getState} generates the parameter `state`\n\t */\n\tfunction setState( state ) {\n\n\t\tif( typeof state === 'object' ) {\n\t\t\tslide( deserialize( state.indexh ), deserialize( state.indexv ), deserialize( state.indexf ) );\n\n\t\t\tvar pausedFlag = deserialize( state.paused ),\n\t\t\t\toverviewFlag = deserialize( state.overview );\n\n\t\t\tif( typeof pausedFlag === 'boolean' && pausedFlag !== isPaused() ) {\n\t\t\t\ttogglePause( pausedFlag );\n\t\t\t}\n\n\t\t\tif( typeof overviewFlag === 'boolean' && overviewFlag !== isOverview() ) {\n\t\t\t\ttoggleOverview( overviewFlag );\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Return a sorted fragments list, ordered by an increasing\n\t * \"data-fragment-index\" attribute.\n\t *\n\t * Fragments will be revealed in the order that they are returned by\n\t * this function, so you can use the index attributes to control the\n\t * order of fragment appearance.\n\t *\n\t * To maintain a sensible default fragment order, fragments are presumed\n\t * to be passed in document order. This function adds a \"fragment-index\"\n\t * attribute to each node if such an attribute is not already present,\n\t * and sets that attribute to an integer value which is the position of\n\t * the fragment within the fragments list.\n\t *\n\t * @param {object[]|*} fragments\n\t * @return {object[]} sorted Sorted array of fragments\n\t */\n\tfunction sortFragments( fragments ) {\n\n\t\tfragments = toArray( fragments );\n\n\t\tvar ordered = [],\n\t\t\tunordered = [],\n\t\t\tsorted = [];\n\n\t\t// Group ordered and unordered elements\n\t\tfragments.forEach( function( fragment, i ) {\n\t\t\tif( fragment.hasAttribute( 'data-fragment-index' ) ) {\n\t\t\t\tvar index = parseInt( fragment.getAttribute( 'data-fragment-index' ), 10 );\n\n\t\t\t\tif( !ordered[index] ) {\n\t\t\t\t\tordered[index] = [];\n\t\t\t\t}\n\n\t\t\t\tordered[index].push( fragment );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tunordered.push( [ fragment ] );\n\t\t\t}\n\t\t} );\n\n\t\t// Append fragments without explicit indices in their\n\t\t// DOM order\n\t\tordered = ordered.concat( unordered );\n\n\t\t// Manually count the index up per group to ensure there\n\t\t// are no gaps\n\t\tvar index = 0;\n\n\t\t// Push all fragments in their sorted order to an array,\n\t\t// this flattens the groups\n\t\tordered.forEach( function( group ) {\n\t\t\tgroup.forEach( function( fragment ) {\n\t\t\t\tsorted.push( fragment );\n\t\t\t\tfragment.setAttribute( 'data-fragment-index', index );\n\t\t\t} );\n\n\t\t\tindex ++;\n\t\t} );\n\n\t\treturn sorted;\n\n\t}\n\n\t/**\n\t * Navigate to the specified slide fragment.\n\t *\n\t * @param {?number} index The index of the fragment that\n\t * should be shown, -1 means all are invisible\n\t * @param {number} offset Integer offset to apply to the\n\t * fragment index\n\t *\n\t * @return {boolean} true if a change was made in any\n\t * fragments visibility as part of this call\n\t */\n\tfunction navigateFragment( index, offset ) {\n\n\t\tif( currentSlide && config.fragments ) {\n\n\t\t\tvar fragments = sortFragments( currentSlide.querySelectorAll( '.fragment' ) );\n\t\t\tif( fragments.length ) {\n\n\t\t\t\t// If no index is specified, find the current\n\t\t\t\tif( typeof index !== 'number' ) {\n\t\t\t\t\tvar lastVisibleFragment = sortFragments( currentSlide.querySelectorAll( '.fragment.visible' ) ).pop();\n\n\t\t\t\t\tif( lastVisibleFragment ) {\n\t\t\t\t\t\tindex = parseInt( lastVisibleFragment.getAttribute( 'data-fragment-index' ) || 0, 10 );\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tindex = -1;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// If an offset is specified, apply it to the index\n\t\t\t\tif( typeof offset === 'number' ) {\n\t\t\t\t\tindex += offset;\n\t\t\t\t}\n\n\t\t\t\tvar fragmentsShown = [],\n\t\t\t\t\tfragmentsHidden = [];\n\n\t\t\t\ttoArray( fragments ).forEach( function( element, i ) {\n\n\t\t\t\t\tif( element.hasAttribute( 'data-fragment-index' ) ) {\n\t\t\t\t\t\ti = parseInt( element.getAttribute( 'data-fragment-index' ), 10 );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Visible fragments\n\t\t\t\t\tif( i <= index ) {\n\t\t\t\t\t\tif( !element.classList.contains( 'visible' ) ) fragmentsShown.push( element );\n\t\t\t\t\t\telement.classList.add( 'visible' );\n\t\t\t\t\t\telement.classList.remove( 'current-fragment' );\n\n\t\t\t\t\t\t// Announce the fragments one by one to the Screen Reader\n\t\t\t\t\t\tdom.statusDiv.textContent = getStatusText( element );\n\n\t\t\t\t\t\tif( i === index ) {\n\t\t\t\t\t\t\telement.classList.add( 'current-fragment' );\n\t\t\t\t\t\t\tstartEmbeddedContent( element );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Hidden fragments\n\t\t\t\t\telse {\n\t\t\t\t\t\tif( element.classList.contains( 'visible' ) ) fragmentsHidden.push( element );\n\t\t\t\t\t\telement.classList.remove( 'visible' );\n\t\t\t\t\t\telement.classList.remove( 'current-fragment' );\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\tif( fragmentsHidden.length ) {\n\t\t\t\t\tdispatchEvent( 'fragmenthidden', { fragment: fragmentsHidden[0], fragments: fragmentsHidden } );\n\t\t\t\t}\n\n\t\t\t\tif( fragmentsShown.length ) {\n\t\t\t\t\tdispatchEvent( 'fragmentshown', { fragment: fragmentsShown[0], fragments: fragmentsShown } );\n\t\t\t\t}\n\n\t\t\t\tupdateControls();\n\t\t\t\tupdateProgress();\n\n\t\t\t\treturn !!( fragmentsShown.length || fragmentsHidden.length );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t/**\n\t * Navigate to the next slide fragment.\n\t *\n\t * @return {boolean} true if there was a next fragment,\n\t * false otherwise\n\t */\n\tfunction nextFragment() {\n\n\t\treturn navigateFragment( null, 1 );\n\n\t}\n\n\t/**\n\t * Navigate to the previous slide fragment.\n\t *\n\t * @return {boolean} true if there was a previous fragment,\n\t * false otherwise\n\t */\n\tfunction previousFragment() {\n\n\t\treturn navigateFragment( null, -1 );\n\n\t}\n\n\t/**\n\t * Cues a new automated slide if enabled in the config.\n\t */\n\tfunction cueAutoSlide() {\n\n\t\tcancelAutoSlide();\n\n\t\tif( currentSlide ) {\n\n\t\t\tvar fragment = currentSlide.querySelector( '.current-fragment' );\n\n\t\t\t// When the slide first appears there is no \"current\" fragment so\n\t\t\t// we look for a data-autoslide timing on the first fragment\n\t\t\tif( !fragment ) fragment = currentSlide.querySelector( '.fragment' );\n\n\t\t\tvar fragmentAutoSlide = fragment ? fragment.getAttribute( 'data-autoslide' ) : null;\n\t\t\tvar parentAutoSlide = currentSlide.parentNode ? currentSlide.parentNode.getAttribute( 'data-autoslide' ) : null;\n\t\t\tvar slideAutoSlide = currentSlide.getAttribute( 'data-autoslide' );\n\n\t\t\t// Pick value in the following priority order:\n\t\t\t// 1. Current fragment's data-autoslide\n\t\t\t// 2. Current slide's data-autoslide\n\t\t\t// 3. Parent slide's data-autoslide\n\t\t\t// 4. Global autoSlide setting\n\t\t\tif( fragmentAutoSlide ) {\n\t\t\t\tautoSlide = parseInt( fragmentAutoSlide, 10 );\n\t\t\t}\n\t\t\telse if( slideAutoSlide ) {\n\t\t\t\tautoSlide = parseInt( slideAutoSlide, 10 );\n\t\t\t}\n\t\t\telse if( parentAutoSlide ) {\n\t\t\t\tautoSlide = parseInt( parentAutoSlide, 10 );\n\t\t\t}\n\t\t\telse {\n\t\t\t\tautoSlide = config.autoSlide;\n\t\t\t}\n\n\t\t\t// If there are media elements with data-autoplay,\n\t\t\t// automatically set the autoSlide duration to the\n\t\t\t// length of that media. Not applicable if the slide\n\t\t\t// is divided up into fragments.\n\t\t\t// playbackRate is accounted for in the duration.\n\t\t\tif( currentSlide.querySelectorAll( '.fragment' ).length === 0 ) {\n\t\t\t\ttoArray( currentSlide.querySelectorAll( 'video, audio' ) ).forEach( function( el ) {\n\t\t\t\t\tif( el.hasAttribute( 'data-autoplay' ) ) {\n\t\t\t\t\t\tif( autoSlide && (el.duration * 1000 / el.playbackRate ) > autoSlide ) {\n\t\t\t\t\t\t\tautoSlide = ( el.duration * 1000 / el.playbackRate ) + 1000;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\t// Cue the next auto-slide if:\n\t\t\t// - There is an autoSlide value\n\t\t\t// - Auto-sliding isn't paused by the user\n\t\t\t// - The presentation isn't paused\n\t\t\t// - The overview isn't active\n\t\t\t// - The presentation isn't over\n\t\t\tif( autoSlide && !autoSlidePaused && !isPaused() && !isOverview() && ( !Reveal.isLastSlide() || availableFragments().next || config.loop === true ) ) {\n\t\t\t\tautoSlideTimeout = setTimeout( function() {\n\t\t\t\t\ttypeof config.autoSlideMethod === 'function' ? config.autoSlideMethod() : navigateNext();\n\t\t\t\t\tcueAutoSlide();\n\t\t\t\t}, autoSlide );\n\t\t\t\tautoSlideStartTime = Date.now();\n\t\t\t}\n\n\t\t\tif( autoSlidePlayer ) {\n\t\t\t\tautoSlidePlayer.setPlaying( autoSlideTimeout !== -1 );\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Cancels any ongoing request to auto-slide.\n\t */\n\tfunction cancelAutoSlide() {\n\n\t\tclearTimeout( autoSlideTimeout );\n\t\tautoSlideTimeout = -1;\n\n\t}\n\n\tfunction pauseAutoSlide() {\n\n\t\tif( autoSlide && !autoSlidePaused ) {\n\t\t\tautoSlidePaused = true;\n\t\t\tdispatchEvent( 'autoslidepaused' );\n\t\t\tclearTimeout( autoSlideTimeout );\n\n\t\t\tif( autoSlidePlayer ) {\n\t\t\t\tautoSlidePlayer.setPlaying( false );\n\t\t\t}\n\t\t}\n\n\t}\n\n\tfunction resumeAutoSlide() {\n\n\t\tif( autoSlide && autoSlidePaused ) {\n\t\t\tautoSlidePaused = false;\n\t\t\tdispatchEvent( 'autoslideresumed' );\n\t\t\tcueAutoSlide();\n\t\t}\n\n\t}\n\n\tfunction navigateLeft() {\n\n\t\t// Reverse for RTL\n\t\tif( config.rtl ) {\n\t\t\tif( ( isOverview() || nextFragment() === false ) && availableRoutes().left ) {\n\t\t\t\tslide( indexh + 1 );\n\t\t\t}\n\t\t}\n\t\t// Normal navigation\n\t\telse if( ( isOverview() || previousFragment() === false ) && availableRoutes().left ) {\n\t\t\tslide( indexh - 1 );\n\t\t}\n\n\t}\n\n\tfunction navigateRight() {\n\n\t\t// Reverse for RTL\n\t\tif( config.rtl ) {\n\t\t\tif( ( isOverview() || previousFragment() === false ) && availableRoutes().right ) {\n\t\t\t\tslide( indexh - 1 );\n\t\t\t}\n\t\t}\n\t\t// Normal navigation\n\t\telse if( ( isOverview() || nextFragment() === false ) && availableRoutes().right ) {\n\t\t\tslide( indexh + 1 );\n\t\t}\n\n\t}\n\n\tfunction navigateUp() {\n\n\t\t// Prioritize hiding fragments\n\t\tif( ( isOverview() || previousFragment() === false ) && availableRoutes().up ) {\n\t\t\tslide( indexh, indexv - 1 );\n\t\t}\n\n\t}\n\n\tfunction navigateDown() {\n\n\t\t// Prioritize revealing fragments\n\t\tif( ( isOverview() || nextFragment() === false ) && availableRoutes().down ) {\n\t\t\tslide( indexh, indexv + 1 );\n\t\t}\n\n\t}\n\n\t/**\n\t * Navigates backwards, prioritized in the following order:\n\t * 1) Previous fragment\n\t * 2) Previous vertical slide\n\t * 3) Previous horizontal slide\n\t */\n\tfunction navigatePrev() {\n\n\t\t// Prioritize revealing fragments\n\t\tif( previousFragment() === false ) {\n\t\t\tif( availableRoutes().up ) {\n\t\t\t\tnavigateUp();\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Fetch the previous horizontal slide, if there is one\n\t\t\t\tvar previousSlide;\n\n\t\t\t\tif( config.rtl ) {\n\t\t\t\t\tpreviousSlide = toArray( dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.future' ) ).pop();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tpreviousSlide = toArray( dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.past' ) ).pop();\n\t\t\t\t}\n\n\t\t\t\tif( previousSlide ) {\n\t\t\t\t\tvar v = ( previousSlide.querySelectorAll( 'section' ).length - 1 ) || undefined;\n\t\t\t\t\tvar h = indexh - 1;\n\t\t\t\t\tslide( h, v );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * The reverse of #navigatePrev().\n\t */\n\tfunction navigateNext() {\n\n\t\t// Prioritize revealing fragments\n\t\tif( nextFragment() === false ) {\n\t\t\tif( availableRoutes().down ) {\n\t\t\t\tnavigateDown();\n\t\t\t}\n\t\t\telse if( config.rtl ) {\n\t\t\t\tnavigateLeft();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tnavigateRight();\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Checks if the target element prevents the triggering of\n\t * swipe navigation.\n\t */\n\tfunction isSwipePrevented( target ) {\n\n\t\twhile( target && typeof target.hasAttribute === 'function' ) {\n\t\t\tif( target.hasAttribute( 'data-prevent-swipe' ) ) return true;\n\t\t\ttarget = target.parentNode;\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\n\t// --------------------------------------------------------------------//\n\t// ----------------------------- EVENTS -------------------------------//\n\t// --------------------------------------------------------------------//\n\n\t/**\n\t * Called by all event handlers that are based on user\n\t * input.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onUserInput( event ) {\n\n\t\tif( config.autoSlideStoppable ) {\n\t\t\tpauseAutoSlide();\n\t\t}\n\n\t}\n\n\t/**\n\t * Handler for the document level 'keypress' event.\n\t *\n\t * @param {object} event\n\t */\n\tfunction onDocumentKeyPress( event ) {\n\n\t\t// Check if the pressed key is question mark\n\t\tif( event.shiftKey && event.charCode === 63 ) {\n\t\t\ttoggleHelp();\n\t\t}\n\n\t}\n\n\t/**\n\t * Handler for the document level 'keydown' event.\n\t *\n\t * @param {object} event\n\t */\n\tfunction onDocumentKeyDown( event ) {\n\n\t\t// If there's a condition specified and it returns false,\n\t\t// ignore this event\n\t\tif( typeof config.keyboardCondition === 'function' && config.keyboardCondition() === false ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Remember if auto-sliding was paused so we can toggle it\n\t\tvar autoSlideWasPaused = autoSlidePaused;\n\n\t\tonUserInput( event );\n\n\t\t// Check if there's a focused element that could be using\n\t\t// the keyboard\n\t\tvar activeElementIsCE = document.activeElement && document.activeElement.contentEditable !== 'inherit';\n\t\tvar activeElementIsInput = document.activeElement && document.activeElement.tagName && /input|textarea/i.test( document.activeElement.tagName );\n\t\tvar activeElementIsNotes = document.activeElement && document.activeElement.className && /speaker-notes/i.test( document.activeElement.className);\n\n\t\t// Disregard the event if there's a focused element or a\n\t\t// keyboard modifier key is present\n\t\tif( activeElementIsCE || activeElementIsInput || activeElementIsNotes || (event.shiftKey && event.keyCode !== 32) || event.altKey || event.ctrlKey || event.metaKey ) return;\n\n\t\t// While paused only allow resume keyboard events; 'b', 'v', '.'\n\t\tvar resumeKeyCodes = [66,86,190,191];\n\t\tvar key;\n\n\t\t// Custom key bindings for togglePause should be able to resume\n\t\tif( typeof config.keyboard === 'object' ) {\n\t\t\tfor( key in config.keyboard ) {\n\t\t\t\tif( config.keyboard[key] === 'togglePause' ) {\n\t\t\t\t\tresumeKeyCodes.push( parseInt( key, 10 ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif( isPaused() && resumeKeyCodes.indexOf( event.keyCode ) === -1 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar triggered = false;\n\n\t\t// 1. User defined key bindings\n\t\tif( typeof config.keyboard === 'object' ) {\n\n\t\t\tfor( key in config.keyboard ) {\n\n\t\t\t\t// Check if this binding matches the pressed key\n\t\t\t\tif( parseInt( key, 10 ) === event.keyCode ) {\n\n\t\t\t\t\tvar value = config.keyboard[ key ];\n\n\t\t\t\t\t// Callback function\n\t\t\t\t\tif( typeof value === 'function' ) {\n\t\t\t\t\t\tvalue.apply( null, [ event ] );\n\t\t\t\t\t}\n\t\t\t\t\t// String shortcuts to reveal.js API\n\t\t\t\t\telse if( typeof value === 'string' && typeof Reveal[ value ] === 'function' ) {\n\t\t\t\t\t\tReveal[ value ].call();\n\t\t\t\t\t}\n\n\t\t\t\t\ttriggered = true;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// 2. System defined key bindings\n\t\tif( triggered === false ) {\n\n\t\t\t// Assume true and try to prove false\n\t\t\ttriggered = true;\n\n\t\t\tswitch( event.keyCode ) {\n\t\t\t\t// p, page up\n\t\t\t\tcase 80: case 33: navigatePrev(); break;\n\t\t\t\t// n, page down\n\t\t\t\tcase 78: case 34: navigateNext(); break;\n\t\t\t\t// h, left\n\t\t\t\tcase 72: case 37: navigateLeft(); break;\n\t\t\t\t// l, right\n\t\t\t\tcase 76: case 39: navigateRight(); break;\n\t\t\t\t// k, up\n\t\t\t\tcase 75: case 38: navigateUp(); break;\n\t\t\t\t// j, down\n\t\t\t\tcase 74: case 40: navigateDown(); break;\n\t\t\t\t// home\n\t\t\t\tcase 36: slide( 0 ); break;\n\t\t\t\t// end\n\t\t\t\tcase 35: slide( Number.MAX_VALUE ); break;\n\t\t\t\t// space\n\t\t\t\tcase 32: isOverview() ? deactivateOverview() : event.shiftKey ? navigatePrev() : navigateNext(); break;\n\t\t\t\t// return\n\t\t\t\tcase 13: isOverview() ? deactivateOverview() : triggered = false; break;\n\t\t\t\t// two-spot, semicolon, b, v, period, Logitech presenter tools \"black screen\" button\n\t\t\t\tcase 58: case 59: case 66: case 86: case 190: case 191: togglePause(); break;\n\t\t\t\t// f\n\t\t\t\tcase 70: enterFullscreen(); break;\n\t\t\t\t// a\n\t\t\t\tcase 65: if ( config.autoSlideStoppable ) toggleAutoSlide( autoSlideWasPaused ); break;\n\t\t\t\tdefault:\n\t\t\t\t\ttriggered = false;\n\t\t\t}\n\n\t\t}\n\n\t\t// If the input resulted in a triggered action we should prevent\n\t\t// the browsers default behavior\n\t\tif( triggered ) {\n\t\t\tevent.preventDefault && event.preventDefault();\n\t\t}\n\t\t// ESC or O key\n\t\telse if ( ( event.keyCode === 27 || event.keyCode === 79 ) && features.transforms3d ) {\n\t\t\tif( dom.overlay ) {\n\t\t\t\tcloseOverlay();\n\t\t\t}\n\t\t\telse {\n\t\t\t\ttoggleOverview();\n\t\t\t}\n\n\t\t\tevent.preventDefault && event.preventDefault();\n\t\t}\n\n\t\t// If auto-sliding is enabled we need to cue up\n\t\t// another timeout\n\t\tcueAutoSlide();\n\n\t}\n\n\t/**\n\t * Handler for the 'touchstart' event, enables support for\n\t * swipe and pinch gestures.\n\t *\n\t * @param {object} event\n\t */\n\tfunction onTouchStart( event ) {\n\n\t\tif( isSwipePrevented( event.target ) ) return true;\n\n\t\ttouch.startX = event.touches[0].clientX;\n\t\ttouch.startY = event.touches[0].clientY;\n\t\ttouch.startCount = event.touches.length;\n\n\t\t// If there's two touches we need to memorize the distance\n\t\t// between those two points to detect pinching\n\t\tif( event.touches.length === 2 && config.overview ) {\n\t\t\ttouch.startSpan = distanceBetween( {\n\t\t\t\tx: event.touches[1].clientX,\n\t\t\t\ty: event.touches[1].clientY\n\t\t\t}, {\n\t\t\t\tx: touch.startX,\n\t\t\t\ty: touch.startY\n\t\t\t} );\n\t\t}\n\n\t}\n\n\t/**\n\t * Handler for the 'touchmove' event.\n\t *\n\t * @param {object} event\n\t */\n\tfunction onTouchMove( event ) {\n\n\t\tif( isSwipePrevented( event.target ) ) return true;\n\n\t\t// Each touch should only trigger one action\n\t\tif( !touch.captured ) {\n\t\t\tonUserInput( event );\n\n\t\t\tvar currentX = event.touches[0].clientX;\n\t\t\tvar currentY = event.touches[0].clientY;\n\n\t\t\t// If the touch started with two points and still has\n\t\t\t// two active touches; test for the pinch gesture\n\t\t\tif( event.touches.length === 2 && touch.startCount === 2 && config.overview ) {\n\n\t\t\t\t// The current distance in pixels between the two touch points\n\t\t\t\tvar currentSpan = distanceBetween( {\n\t\t\t\t\tx: event.touches[1].clientX,\n\t\t\t\t\ty: event.touches[1].clientY\n\t\t\t\t}, {\n\t\t\t\t\tx: touch.startX,\n\t\t\t\t\ty: touch.startY\n\t\t\t\t} );\n\n\t\t\t\t// If the span is larger than the desire amount we've got\n\t\t\t\t// ourselves a pinch\n\t\t\t\tif( Math.abs( touch.startSpan - currentSpan ) > touch.threshold ) {\n\t\t\t\t\ttouch.captured = true;\n\n\t\t\t\t\tif( currentSpan < touch.startSpan ) {\n\t\t\t\t\t\tactivateOverview();\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tdeactivateOverview();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tevent.preventDefault();\n\n\t\t\t}\n\t\t\t// There was only one touch point, look for a swipe\n\t\t\telse if( event.touches.length === 1 && touch.startCount !== 2 ) {\n\n\t\t\t\tvar deltaX = currentX - touch.startX,\n\t\t\t\t\tdeltaY = currentY - touch.startY;\n\n\t\t\t\tif( deltaX > touch.threshold && Math.abs( deltaX ) > Math.abs( deltaY ) ) {\n\t\t\t\t\ttouch.captured = true;\n\t\t\t\t\tnavigateLeft();\n\t\t\t\t}\n\t\t\t\telse if( deltaX < -touch.threshold && Math.abs( deltaX ) > Math.abs( deltaY ) ) {\n\t\t\t\t\ttouch.captured = true;\n\t\t\t\t\tnavigateRight();\n\t\t\t\t}\n\t\t\t\telse if( deltaY > touch.threshold ) {\n\t\t\t\t\ttouch.captured = true;\n\t\t\t\t\tnavigateUp();\n\t\t\t\t}\n\t\t\t\telse if( deltaY < -touch.threshold ) {\n\t\t\t\t\ttouch.captured = true;\n\t\t\t\t\tnavigateDown();\n\t\t\t\t}\n\n\t\t\t\t// If we're embedded, only block touch events if they have\n\t\t\t\t// triggered an action\n\t\t\t\tif( config.embedded ) {\n\t\t\t\t\tif( touch.captured || isVerticalSlide( currentSlide ) ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Not embedded? Block them all to avoid needless tossing\n\t\t\t\t// around of the viewport in iOS\n\t\t\t\telse {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\t\t// There's a bug with swiping on some Android devices unless\n\t\t// the default action is always prevented\n\t\telse if( UA.match( /android/gi ) ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t}\n\n\t/**\n\t * Handler for the 'touchend' event.\n\t *\n\t * @param {object} event\n\t */\n\tfunction onTouchEnd( event ) {\n\n\t\ttouch.captured = false;\n\n\t}\n\n\t/**\n\t * Convert pointer down to touch start.\n\t *\n\t * @param {object} event\n\t */\n\tfunction onPointerDown( event ) {\n\n\t\tif( event.pointerType === event.MSPOINTER_TYPE_TOUCH || event.pointerType === \"touch\" ) {\n\t\t\tevent.touches = [{ clientX: event.clientX, clientY: event.clientY }];\n\t\t\tonTouchStart( event );\n\t\t}\n\n\t}\n\n\t/**\n\t * Convert pointer move to touch move.\n\t *\n\t * @param {object} event\n\t */\n\tfunction onPointerMove( event ) {\n\n\t\tif( event.pointerType === event.MSPOINTER_TYPE_TOUCH || event.pointerType === \"touch\" ) {\n\t\t\tevent.touches = [{ clientX: event.clientX, clientY: event.clientY }];\n\t\t\tonTouchMove( event );\n\t\t}\n\n\t}\n\n\t/**\n\t * Convert pointer up to touch end.\n\t *\n\t * @param {object} event\n\t */\n\tfunction onPointerUp( event ) {\n\n\t\tif( event.pointerType === event.MSPOINTER_TYPE_TOUCH || event.pointerType === \"touch\" ) {\n\t\t\tevent.touches = [{ clientX: event.clientX, clientY: event.clientY }];\n\t\t\tonTouchEnd( event );\n\t\t}\n\n\t}\n\n\t/**\n\t * Handles mouse wheel scrolling, throttled to avoid skipping\n\t * multiple slides.\n\t *\n\t * @param {object} event\n\t */\n\tfunction onDocumentMouseScroll( event ) {\n\n\t\tif( Date.now() - lastMouseWheelStep > 600 ) {\n\n\t\t\tlastMouseWheelStep = Date.now();\n\n\t\t\tvar delta = event.detail || -event.wheelDelta;\n\t\t\tif( delta > 0 ) {\n\t\t\t\tnavigateNext();\n\t\t\t}\n\t\t\telse if( delta < 0 ) {\n\t\t\t\tnavigatePrev();\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Clicking on the progress bar results in a navigation to the\n\t * closest approximate horizontal slide using this equation:\n\t *\n\t * ( clickX / presentationWidth ) * numberOfSlides\n\t *\n\t * @param {object} event\n\t */\n\tfunction onProgressClicked( event ) {\n\n\t\tonUserInput( event );\n\n\t\tevent.preventDefault();\n\n\t\tvar slidesTotal = toArray( dom.wrapper.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ).length;\n\t\tvar slideIndex = Math.floor( ( event.clientX / dom.wrapper.offsetWidth ) * slidesTotal );\n\n\t\tif( config.rtl ) {\n\t\t\tslideIndex = slidesTotal - slideIndex;\n\t\t}\n\n\t\tslide( slideIndex );\n\n\t}\n\n\t/**\n\t * Event handler for navigation control buttons.\n\t */\n\tfunction onNavigateLeftClicked( event ) { event.preventDefault(); onUserInput(); navigateLeft(); }\n\tfunction onNavigateRightClicked( event ) { event.preventDefault(); onUserInput(); navigateRight(); }\n\tfunction onNavigateUpClicked( event ) { event.preventDefault(); onUserInput(); navigateUp(); }\n\tfunction onNavigateDownClicked( event ) { event.preventDefault(); onUserInput(); navigateDown(); }\n\tfunction onNavigatePrevClicked( event ) { event.preventDefault(); onUserInput(); navigatePrev(); }\n\tfunction onNavigateNextClicked( event ) { event.preventDefault(); onUserInput(); navigateNext(); }\n\n\t/**\n\t * Handler for the window level 'hashchange' event.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onWindowHashChange( event ) {\n\n\t\treadURL();\n\n\t}\n\n\t/**\n\t * Handler for the window level 'resize' event.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onWindowResize( event ) {\n\n\t\tlayout();\n\n\t}\n\n\t/**\n\t * Handle for the window level 'visibilitychange' event.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onPageVisibilityChange( event ) {\n\n\t\tvar isHidden = document.webkitHidden ||\n\t\t\t\t\t\tdocument.msHidden ||\n\t\t\t\t\t\tdocument.hidden;\n\n\t\t// If, after clicking a link or similar and we're coming back,\n\t\t// focus the document.body to ensure we can use keyboard shortcuts\n\t\tif( isHidden === false && document.activeElement !== document.body ) {\n\t\t\t// Not all elements support .blur() - SVGs among them.\n\t\t\tif( typeof document.activeElement.blur === 'function' ) {\n\t\t\t\tdocument.activeElement.blur();\n\t\t\t}\n\t\t\tdocument.body.focus();\n\t\t}\n\n\t}\n\n\t/**\n\t * Invoked when a slide is and we're in the overview.\n\t *\n\t * @param {object} event\n\t */\n\tfunction onOverviewSlideClicked( event ) {\n\n\t\t// TODO There's a bug here where the event listeners are not\n\t\t// removed after deactivating the overview.\n\t\tif( eventsAreBound && isOverview() ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tvar element = event.target;\n\n\t\t\twhile( element && !element.nodeName.match( /section/gi ) ) {\n\t\t\t\telement = element.parentNode;\n\t\t\t}\n\n\t\t\tif( element && !element.classList.contains( 'disabled' ) ) {\n\n\t\t\t\tdeactivateOverview();\n\n\t\t\t\tif( element.nodeName.match( /section/gi ) ) {\n\t\t\t\t\tvar h = parseInt( element.getAttribute( 'data-index-h' ), 10 ),\n\t\t\t\t\t\tv = parseInt( element.getAttribute( 'data-index-v' ), 10 );\n\n\t\t\t\t\tslide( h, v );\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Handles clicks on links that are set to preview in the\n\t * iframe overlay.\n\t *\n\t * @param {object} event\n\t */\n\tfunction onPreviewLinkClicked( event ) {\n\n\t\tif( event.currentTarget && event.currentTarget.hasAttribute( 'href' ) ) {\n\t\t\tvar url = event.currentTarget.getAttribute( 'href' );\n\t\t\tif( url ) {\n\t\t\t\tshowPreview( url );\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t}\n\n\t}\n\n\t/**\n\t * Handles click on the auto-sliding controls element.\n\t *\n\t * @param {object} [event]\n\t */\n\tfunction onAutoSlidePlayerClick( event ) {\n\n\t\t// Replay\n\t\tif( Reveal.isLastSlide() && config.loop === false ) {\n\t\t\tslide( 0, 0 );\n\t\t\tresumeAutoSlide();\n\t\t}\n\t\t// Resume\n\t\telse if( autoSlidePaused ) {\n\t\t\tresumeAutoSlide();\n\t\t}\n\t\t// Pause\n\t\telse {\n\t\t\tpauseAutoSlide();\n\t\t}\n\n\t}\n\n\n\t// --------------------------------------------------------------------//\n\t// ------------------------ PLAYBACK COMPONENT ------------------------//\n\t// --------------------------------------------------------------------//\n\n\n\t/**\n\t * Constructor for the playback component, which displays\n\t * play/pause/progress controls.\n\t *\n\t * @param {HTMLElement} container The component will append\n\t * itself to this\n\t * @param {function} progressCheck A method which will be\n\t * called frequently to get the current progress on a range\n\t * of 0-1\n\t */\n\tfunction Playback( container, progressCheck ) {\n\n\t\t// Cosmetics\n\t\tthis.diameter = 100;\n\t\tthis.diameter2 = this.diameter/2;\n\t\tthis.thickness = 6;\n\n\t\t// Flags if we are currently playing\n\t\tthis.playing = false;\n\n\t\t// Current progress on a 0-1 range\n\t\tthis.progress = 0;\n\n\t\t// Used to loop the animation smoothly\n\t\tthis.progressOffset = 1;\n\n\t\tthis.container = container;\n\t\tthis.progressCheck = progressCheck;\n\n\t\tthis.canvas = document.createElement( 'canvas' );\n\t\tthis.canvas.className = 'playback';\n\t\tthis.canvas.width = this.diameter;\n\t\tthis.canvas.height = this.diameter;\n\t\tthis.canvas.style.width = this.diameter2 + 'px';\n\t\tthis.canvas.style.height = this.diameter2 + 'px';\n\t\tthis.context = this.canvas.getContext( '2d' );\n\n\t\tthis.container.appendChild( this.canvas );\n\n\t\tthis.render();\n\n\t}\n\n\t/**\n\t * @param value\n\t */\n\tPlayback.prototype.setPlaying = function( value ) {\n\n\t\tvar wasPlaying = this.playing;\n\n\t\tthis.playing = value;\n\n\t\t// Start repainting if we weren't already\n\t\tif( !wasPlaying && this.playing ) {\n\t\t\tthis.animate();\n\t\t}\n\t\telse {\n\t\t\tthis.render();\n\t\t}\n\n\t};\n\n\tPlayback.prototype.animate = function() {\n\n\t\tvar progressBefore = this.progress;\n\n\t\tthis.progress = this.progressCheck();\n\n\t\t// When we loop, offset the progress so that it eases\n\t\t// smoothly rather than immediately resetting\n\t\tif( progressBefore > 0.8 && this.progress < 0.2 ) {\n\t\t\tthis.progressOffset = this.progress;\n\t\t}\n\n\t\tthis.render();\n\n\t\tif( this.playing ) {\n\t\t\tfeatures.requestAnimationFrameMethod.call( window, this.animate.bind( this ) );\n\t\t}\n\n\t};\n\n\t/**\n\t * Renders the current progress and playback state.\n\t */\n\tPlayback.prototype.render = function() {\n\n\t\tvar progress = this.playing ? this.progress : 0,\n\t\t\tradius = ( this.diameter2 ) - this.thickness,\n\t\t\tx = this.diameter2,\n\t\t\ty = this.diameter2,\n\t\t\ticonSize = 28;\n\n\t\t// Ease towards 1\n\t\tthis.progressOffset += ( 1 - this.progressOffset ) * 0.1;\n\n\t\tvar endAngle = ( - Math.PI / 2 ) + ( progress * ( Math.PI * 2 ) );\n\t\tvar startAngle = ( - Math.PI / 2 ) + ( this.progressOffset * ( Math.PI * 2 ) );\n\n\t\tthis.context.save();\n\t\tthis.context.clearRect( 0, 0, this.diameter, this.diameter );\n\n\t\t// Solid background color\n\t\tthis.context.beginPath();\n\t\tthis.context.arc( x, y, radius + 4, 0, Math.PI * 2, false );\n\t\tthis.context.fillStyle = 'rgba( 0, 0, 0, 0.4 )';\n\t\tthis.context.fill();\n\n\t\t// Draw progress track\n\t\tthis.context.beginPath();\n\t\tthis.context.arc( x, y, radius, 0, Math.PI * 2, false );\n\t\tthis.context.lineWidth = this.thickness;\n\t\tthis.context.strokeStyle = '#666';\n\t\tthis.context.stroke();\n\n\t\tif( this.playing ) {\n\t\t\t// Draw progress on top of track\n\t\t\tthis.context.beginPath();\n\t\t\tthis.context.arc( x, y, radius, startAngle, endAngle, false );\n\t\t\tthis.context.lineWidth = this.thickness;\n\t\t\tthis.context.strokeStyle = '#fff';\n\t\t\tthis.context.stroke();\n\t\t}\n\n\t\tthis.context.translate( x - ( iconSize / 2 ), y - ( iconSize / 2 ) );\n\n\t\t// Draw play/pause icons\n\t\tif( this.playing ) {\n\t\t\tthis.context.fillStyle = '#fff';\n\t\t\tthis.context.fillRect( 0, 0, iconSize / 2 - 4, iconSize );\n\t\t\tthis.context.fillRect( iconSize / 2 + 4, 0, iconSize / 2 - 4, iconSize );\n\t\t}\n\t\telse {\n\t\t\tthis.context.beginPath();\n\t\t\tthis.context.translate( 4, 0 );\n\t\t\tthis.context.moveTo( 0, 0 );\n\t\t\tthis.context.lineTo( iconSize - 4, iconSize / 2 );\n\t\t\tthis.context.lineTo( 0, iconSize );\n\t\t\tthis.context.fillStyle = '#fff';\n\t\t\tthis.context.fill();\n\t\t}\n\n\t\tthis.context.restore();\n\n\t};\n\n\tPlayback.prototype.on = function( type, listener ) {\n\t\tthis.canvas.addEventListener( type, listener, false );\n\t};\n\n\tPlayback.prototype.off = function( type, listener ) {\n\t\tthis.canvas.removeEventListener( type, listener, false );\n\t};\n\n\tPlayback.prototype.destroy = function() {\n\n\t\tthis.playing = false;\n\n\t\tif( this.canvas.parentNode ) {\n\t\t\tthis.container.removeChild( this.canvas );\n\t\t}\n\n\t};\n\n\n\t// --------------------------------------------------------------------//\n\t// ------------------------------- API --------------------------------//\n\t// --------------------------------------------------------------------//\n\n\n\tReveal = {\n\t\tVERSION: VERSION,\n\n\t\tinitialize: initialize,\n\t\tconfigure: configure,\n\t\tsync: sync,\n\n\t\t// Navigation methods\n\t\tslide: slide,\n\t\tleft: navigateLeft,\n\t\tright: navigateRight,\n\t\tup: navigateUp,\n\t\tdown: navigateDown,\n\t\tprev: navigatePrev,\n\t\tnext: navigateNext,\n\n\t\t// Fragment methods\n\t\tnavigateFragment: navigateFragment,\n\t\tprevFragment: previousFragment,\n\t\tnextFragment: nextFragment,\n\n\t\t// Deprecated aliases\n\t\tnavigateTo: slide,\n\t\tnavigateLeft: navigateLeft,\n\t\tnavigateRight: navigateRight,\n\t\tnavigateUp: navigateUp,\n\t\tnavigateDown: navigateDown,\n\t\tnavigatePrev: navigatePrev,\n\t\tnavigateNext: navigateNext,\n\n\t\t// Forces an update in slide layout\n\t\tlayout: layout,\n\n\t\t// Randomizes the order of slides\n\t\tshuffle: shuffle,\n\n\t\t// Returns an object with the available routes as booleans (left/right/top/bottom)\n\t\tavailableRoutes: availableRoutes,\n\n\t\t// Returns an object with the available fragments as booleans (prev/next)\n\t\tavailableFragments: availableFragments,\n\n\t\t// Toggles a help overlay with keyboard shortcuts\n\t\ttoggleHelp: toggleHelp,\n\n\t\t// Toggles the overview mode on/off\n\t\ttoggleOverview: toggleOverview,\n\n\t\t// Toggles the \"black screen\" mode on/off\n\t\ttogglePause: togglePause,\n\n\t\t// Toggles the auto slide mode on/off\n\t\ttoggleAutoSlide: toggleAutoSlide,\n\n\t\t// State checks\n\t\tisOverview: isOverview,\n\t\tisPaused: isPaused,\n\t\tisAutoSliding: isAutoSliding,\n\n\t\t// Adds or removes all internal event listeners (such as keyboard)\n\t\taddEventListeners: addEventListeners,\n\t\tremoveEventListeners: removeEventListeners,\n\n\t\t// Facility for persisting and restoring the presentation state\n\t\tgetState: getState,\n\t\tsetState: setState,\n\n\t\t// Presentation progress\n\t\tgetSlidePastCount: getSlidePastCount,\n\n\t\t// Presentation progress on range of 0-1\n\t\tgetProgress: getProgress,\n\n\t\t// Returns the indices of the current, or specified, slide\n\t\tgetIndices: getIndices,\n\n\t\t// Returns an Array of all slides\n\t\tgetSlides: getSlides,\n\n\t\t// Returns the total number of slides\n\t\tgetTotalSlides: getTotalSlides,\n\n\t\t// Returns the slide element at the specified index\n\t\tgetSlide: getSlide,\n\n\t\t// Returns the slide background element at the specified index\n\t\tgetSlideBackground: getSlideBackground,\n\n\t\t// Returns the speaker notes string for a slide, or null\n\t\tgetSlideNotes: getSlideNotes,\n\n\t\t// Returns the previous slide element, may be null\n\t\tgetPreviousSlide: function() {\n\t\t\treturn previousSlide;\n\t\t},\n\n\t\t// Returns the current slide element\n\t\tgetCurrentSlide: function() {\n\t\t\treturn currentSlide;\n\t\t},\n\n\t\t// Returns the current scale of the presentation content\n\t\tgetScale: function() {\n\t\t\treturn scale;\n\t\t},\n\n\t\t// Returns the current configuration object\n\t\tgetConfig: function() {\n\t\t\treturn config;\n\t\t},\n\n\t\t// Helper method, retrieves query string as a key/value hash\n\t\tgetQueryHash: function() {\n\t\t\tvar query = {};\n\n\t\t\tlocation.search.replace( /[A-Z0-9]+?=([\\w\\.%-]*)/gi, function(a) {\n\t\t\t\tquery[ a.split( '=' ).shift() ] = a.split( '=' ).pop();\n\t\t\t} );\n\n\t\t\t// Basic deserialization\n\t\t\tfor( var i in query ) {\n\t\t\t\tvar value = query[ i ];\n\n\t\t\t\tquery[ i ] = deserialize( unescape( value ) );\n\t\t\t}\n\n\t\t\treturn query;\n\t\t},\n\n\t\t// Returns true if we're currently on the first slide\n\t\tisFirstSlide: function() {\n\t\t\treturn ( indexh === 0 && indexv === 0 );\n\t\t},\n\n\t\t// Returns true if we're currently on the last slide\n\t\tisLastSlide: function() {\n\t\t\tif( currentSlide ) {\n\t\t\t\t// Does this slide has next a sibling?\n\t\t\t\tif( currentSlide.nextElementSibling ) return false;\n\n\t\t\t\t// If it's vertical, does its parent have a next sibling?\n\t\t\t\tif( isVerticalSlide( currentSlide ) && currentSlide.parentNode.nextElementSibling ) return false;\n\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\n\t\t// Checks if reveal.js has been loaded and is ready for use\n\t\tisReady: function() {\n\t\t\treturn loaded;\n\t\t},\n\n\t\t// Forward event binding to the reveal DOM element\n\t\taddEventListener: function( type, listener, useCapture ) {\n\t\t\tif( 'addEventListener' in window ) {\n\t\t\t\t( dom.wrapper || document.querySelector( '.reveal' ) ).addEventListener( type, listener, useCapture );\n\t\t\t}\n\t\t},\n\t\tremoveEventListener: function( type, listener, useCapture ) {\n\t\t\tif( 'addEventListener' in window ) {\n\t\t\t\t( dom.wrapper || document.querySelector( '.reveal' ) ).removeEventListener( type, listener, useCapture );\n\t\t\t}\n\t\t},\n\n\t\t// Programatically triggers a keyboard event\n\t\ttriggerKey: function( keyCode ) {\n\t\t\tonDocumentKeyDown( { keyCode: keyCode } );\n\t\t},\n\n\t\t// Registers a new shortcut to include in the help overlay\n\t\tregisterKeyboardShortcut: function( key, value ) {\n\t\t\tkeyboardShortcuts[key] = value;\n\t\t}\n\t};\n\n\treturn Reveal;\n\n}));\n",
"slug": "reveal-js/js/reveal.js",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/reveal-js/files/js/reveal.js",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/lib/css/zenburn.css": {
"text": "/*\n\nZenburn style from voldmar.ru (c) Vladimir Epifanov <voldmar@voldmar.ru>\nbased on dark.css by Ivan Sagalaev\n\n*/\n\n.hljs {\n display: block;\n overflow-x: auto;\n padding: 0.5em;\n background: #3f3f3f;\n color: #dcdcdc;\n}\n\n.hljs-keyword,\n.hljs-selector-tag,\n.hljs-tag {\n color: #e3ceab;\n}\n\n.hljs-template-tag {\n color: #dcdcdc;\n}\n\n.hljs-number {\n color: #8cd0d3;\n}\n\n.hljs-variable,\n.hljs-template-variable,\n.hljs-attribute {\n color: #efdcbc;\n}\n\n.hljs-literal {\n color: #efefaf;\n}\n\n.hljs-subst {\n color: #8f8f8f;\n}\n\n.hljs-title,\n.hljs-name,\n.hljs-selector-id,\n.hljs-selector-class,\n.hljs-section,\n.hljs-type {\n color: #efef8f;\n}\n\n.hljs-symbol,\n.hljs-bullet,\n.hljs-link {\n color: #dca3a3;\n}\n\n.hljs-deletion,\n.hljs-string,\n.hljs-built_in,\n.hljs-builtin-name {\n color: #cc9393;\n}\n\n.hljs-addition,\n.hljs-comment,\n.hljs-quote,\n.hljs-meta {\n color: #7f9f7f;\n}\n\n\n.hljs-emphasis {\n font-style: italic;\n}\n\n.hljs-strong {\n font-weight: bold;\n}\n",
"slug": "reveal-js/lib/css/zenburn.css",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/reveal-js/files/lib/css/zenburn.css",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/lib/font/league-gothic/league-gothic.css": {
"text": "@font-face {\n font-family: 'League Gothic';\n src: url('league-gothic.eot');\n src: url('league-gothic.eot?#iefix') format('embedded-opentype'),\n url('league-gothic.woff') format('woff'),\n url('league-gothic.ttf') format('truetype');\n\n font-weight: normal;\n font-style: normal;\n}",
"slug": "reveal-js/lib/font/league-gothic/league-gothic.css",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/reveal-js/files/lib/font/league-gothic/league-gothic.css",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/lib/font/league-gothic/league-gothic.eot": {
"text": "YGQAAB5jAAACAAIABAAAAAAABQAAAAAAAAABAJABAAAEAExQBwAAAAAAAAAAAAAAAAAAAJMAACAAAAAAo2aqFwAAAAAAAAAAAAAAAAAAAAAAABoATABlAGEAZwB1AGUAIABHAG8AdABoAGkAYwAAAA4AUgBlAGcAdQBsAGEAcgAAAHgAVgBlAHIAcwBpAG8AbgAgADEALgA1ADYAMAA7AFAAUwAgADAAMAAxAC4ANQA2ADAAOwBoAG8AdABjAG8AbgB2ACAAMQAuADAALgA1ADYAOwBtAGEAawBlAG8AdABmAC4AbABpAGIAMgAuADAALgAyADEAMwAyADUAAAAqAEwAZQBhAGcAdQBlACAARwBvAHQAaABpAGMAIABSAGUAZwB1AGwAYQByAAAAAABCU0dQAAAAAAAAAAAAAAAAAAAAAAMAn2QAPcIAPcYAQbIUzemMyXhaZ8ppY3lSh4AmY7qyNG80Rvend4XEAtxbBGdNg4KGUgRVpEUwO1WYg6tjF5f1WhrDg+IdgKr3uTlqCUo4RQPizIrNdTTnyEuTBfHoaZbjk2QFhpKkjGcHxtOzyKmsuWVNBJvR3sppzR5eyrgaN3YiwUyFTUqPCboIuVWYMDktXQzAzk5ByV7NA4tPl5CQoGZv0uaz55z2AdY1wvnpILHaE+zZC2ta0zVscdaWApWSp/y1Ag4HfpJej6PROaxWozxVD8x0r26IaSBEZqbpvbd4DxDsiEcQqEF/I5AWPb8/iHwNTlDMGmWBgXw24ECc0DRJQbKQlPyigIaLeESbE9R6sxlHusPkMLsEofo7LjxB3yVNld5UWTwkgYqzhd/oSYwRXw4/blhhwemPg7YbkDGNbqRPQIfdlnRPCOKfDBRG3Hq6zVDFgbF55k1OcezOK8fwCMhA2T6/khOetjhm8aCaKKJuir9LBCoyjOfeGD3aVnDAQ4RJcrYs/rG3Mi/riLw2+okkqckPnYruAcnZ4ZqEKDdldMDZhyVgzHBnODIYGUxUjFTMIpjkFOTQXFD9QX0gJkDCQMYBETHQKEVzvkQiJx8jRB6eEqx2/0IqQJnM9w8uMrjBGnZuQ4f6sw8Y9oP4doTGZw2cN7BwUOKhyodFHpQ6qHZQ75mBEyjV1sMaQREsvMWjYoj3K2OYyfATjQWqRkwBK0CqAe0KrHpUKbfwUW35lqEo0UflH8BDAM+x00AGkA1cNfDdzRsMb8d8f4L5N2hkOKV8j8l8n4iWjWT5smhNVXW56CSYGkdSUHeCUdjYFfN6FyhXdhXw0u020+2mrefIgCLWCQsyDL4U7U4gi7GFp1q1r2zrboHrdrfrgFUeE+zBUZK3w0o4miKiSgWQJhNRCXkKjIQ8IZsEIfjhPk10t1t2t3uRCOHWH2IXJsRvfYlYnYoQmMX1ktziHFVRYI4kOQug3O1pVLBlsSzkHQiAw1R8YyUWoFtEYIiMjOwGRDaSYMiEYEX4ixkzQQbZgSDYKZINlWS0lhZVNWcLmyYatjf8U0CiETvibkTHFEhjuKdLNKdLM1Ufrfe/NjWps+okbNfTdV/qD6AKialsqJ6h6lMkAKR9wdHXg+TgDIN3KYMWDKGbFRVECBClqnJw4MZUkBMpLcq4OAUl0AtCJKlAhS4FonJbkgYv5DVQTbK6mxJaSNYBJISKzCEIJikaMTmffEDpVj/w3P25S3KxiRAQVFEiAhiTYIBjGY6UQrmUQnkGeUSiyGoqia9u7MTKERagCiWC9iWImKFiUNAlGqOURLZcmRlEqQQyir2OhK3qUsq9QY2FSqHUixuBEvGQBSogUs/ApRfx+U+nWi5c5ssarZmhWgq8rYXUpzrQoA+zHAHIaG0BGXUar4eci0HgkKDF1HVNCg1RodtTcb10NoP5caKNQdmwf+7YNAszjVuRNoGGKbBDdlvbdlgz1kpfxn9YzP1OI0EBqb0ghkxmRaVAbSMNNiBu2r0lL8DVZ6wU2n+xjXcljGbI2Nt0TGzyMxjWasaLSrGhLasKLNWBFpVtU20bGyUZU/+Gu8rymNaPFhhBga8/GiGajUMhojB8BgrRUia6sNTeYBjJVGTPkBsBTQlsU5EJWI8bYtxpB5jKvJCSvI0FdsTkbyTuH12BUFas2lOrbnPqpA5r2HuWY7SJN7Dl+WzDhrs+alGSZTbW1RbYvDajowIBCHJSG0Ns9PqLi16ZUsCyFVI0UclhQDdLhWzoKBIzQ4firaq3MkavkEAz6vQgt/CIcgjOi5WYE5+wSLR9ctFyC9BPdn33bSaJGKkbcVdcYRsm5cN0ZZjBUxTRRG9NCjkYCSNpKgxl5fKjMjGqxEhwhbvqDgy7QdZP0M9FLuUvQh3hOvNvQVVNUrZy3KpcmBflG7Vu1axOuyT+nqrHDebYGShGtgLLjNsQXOEoHVFVfQXUl6K/4o8KJycAgH2BXGHogfTTieD6BSl8g/QTSb1IWDLlk7m2xeid5WQAH9vJrYboLu3uQysx2m1hxbqEtJXWzcAbfjbKcKt5sVnAiG2YRBjT3AWXDpRm9yUZuAZUjwozVyM7K1Ga6bO30D6upa60wI7dRXezhSYtspOylniloBu0WPIJUANgOnzTtLQCO8krgVmxzVNSopSJ8EjH+C2e2HUCtNvCUuSA7knakp3B9u4Y4laajJ2GW174D1cEgz3shWAtQU1IOANuBUhC45iD13iwdVFTZ0tAUWCkAvcJD5JBDa06LemPL7utNVOCUvkq9x+mdTmJr2yShQY8+YQQZXHeHoZn60MS0jjGMaCVC+dXDAggaAjMJMoaaCq5JNxOgLzgHhDxDtJd8VeGpJSjIYkLzlk9B+YdXNdRrC5qolHJ5l8q4zszThkTRhArsVlvAkCJaPK/Fg5jIwStJHQiyxMi1b1dFqNCX5b9bS5aDLlcuVfVc0GhVQkQaAa2jE9dC6T0hjQWubel4usrLdh9T1SEZacYC61biMmnW5VLs95uLS4SzV7S1rHmAEAFBZEju9omL8elPEKMM45xnJRuwYGKVVWSiFUwEiYpBDNpPmiE4X/h+I0KYK1MMyV+sPa2lpB6OC04UUd3M3qpPs47o2IOkt9LmYBnmnaoCKOVJP9Uw2RdwIrTZ+cHfjlrWEjcTNohiAtgnDc8E7Mxwg4wW3FRS8HrWU5zoh/k9Sj7+W+MNWD5Ar9OYpLJ1PC7yHA9OtxWaABr3fqi8IkD8V0ASq/25J8s2SiHdO263l7m+u1p2kUxHekmiKtv9lZs0y7dGBU+WsOXSGPWZmw4YoBpobl85lX5qk7rW+f5Q2IKOHw/sCBdGtox+swRpQQKgViAdBjpv+sWU2fb/BBCR/hkXNxsWObDQaALwCD2hQuv/G3o6WuT+OTeOYXEiJ2T+CbuD1f4b3zzDPHS9IN2olUP4c9IqImLamMLKKK562iGblWdgbGgwyrE06DA2W1BL0JYIFFc4rpEdOEheIE6JYEK4X1W2xCl3lTtmE8buklUX2YBlTU2rgeh/U/VSV10kCZEtGF5XYdJslsbFb9VZW9tVIoA/Q3Fzd4kUf0ZP9XwHAiJGuVSzocLLFMkCSwAHp/WbLv1X68BnvnvFgZcJGX4BUiGT4pMmHutWgf7T8LkwPjryFFhB5UiRThdQFFK1xUoJtsYWuA3b9FxHEVUVENBPA0eq+VWVAwQ0VFl2U/nc4Jv3mBtmXoZ5HFjUw/E3t00k3IN8SckTCHHnktMUuSa3Y7eiKAR/nyGJeUy2QyocuA9RdvQo8lq2/wy4cZFUWl4m9c62Le9XcnDQm4vriGh8qvQPdv3Nys7fhEb+TQG6QIlpIAs5gpA0JBLzeQQyvDuE+iNxTldfuwhcRhWWmSazDLA5ZJVA13krfi1JGuwMv5p5IRb6/dWY4l2AYyMZKnT9bQGD0Lfzq8o7ARgizIkiarwlk9Y1xT2u0GDsxYD565HJzgsGm0JFuaj92L54l6luOHs9cL2m1I9+JD7aJSr9VD7k/PALuLNPuJxAcuZvrsGI8KSFygMgi5JEcc9Dns4qMTGVp6eGORDffmMYKe9DxCH7y5TBr9ERThuGUjoUtsptiJaPl3hIxC0gm/1n4oz47ikxIa2sk60PgzXAib4osLrf9M/AwBl/TItHMmfronH+aDST6zanTrikTg9K9FfRNjnfQLdgDYdBtDH0EnjxVuctwCKcAH3o1Khm6EYaS2NoX7c83o2GU8whk22nWrgWkrElfLNJICYITD38wEbayk0QtjZL875lw9nO/ZlT0H57wsN/4dfRjQdfkbp/rDekg02/jiCpdkCmqdQpscQjJ9eZOzAaq2VJ05k9pNYPCcSR04ii8RoJLytYV/E54JpF70AXLUS+UfWMG+Y6j72GkS+e1eBhyBKZMo8OK4ZUcvRWCVjVG/OR+AMgRDxdA4+NeTUzGRxUE9E4T6cXb2aa9J2uArHIX6Ka7wUseqhXEz7uANM/BvsjajttZF2YJqM0JRCw2FprcyjgnR8NkvUqKom+5TYVmEkYm3m8LhxiptUcoR1pLYUMsaKbLI+YTLHwF39bAvyQNFbMQgjJuTKNfo9M9cQkpBhQdkyZLMr9XSVshWE2SPdFAKTNMt1GGDaWO2k5TDlKaDPwq707uxMy1UCb36ETrqH4DLgK52CaUU3RT3Go0QJosL2U27WyQVm1kjyIgdiwE0rGmRYvw1pKSgMm/uBlg5hS0faisYmHniQRg5QR7cZnhbn5m5pxLMGPyTcztIYljK75iq8rzjSFzI22UQm2PTCNAsXja5OI8CXhbMuJ3E22yWIpg2C+8+uF8Q4es1tEETEYLqUXPih3Ie7SAtnE3o9pqO7zc0q/F99q+J+NHRgGehLC0xMxOFOVMFmBC842xw7pcIa49oU0j/iuuqLejO8jTsmyUJGwPhGtTSdtIyuqNkP7lRrjndSC3RUQr8Hk5D/xWVIDFKCUSIuihSpQmZhClsyoaxQ8iJOnIEe1QugiNAoxe0NSj+E4LM0RJgLPVbpJNgn6WDWUifBuFEWz4sHKvHqlxDJOTfWkvsDSn0YhNbatKb/1UXkzzEOlvUGdUpIZM/VSweoiDSh2HDYj/7SvPc24W2gpaEfUtxsfcYRcEadQGltsyISaM3Ayap3q4AVrOczDeZazgke0IynSGopJLctuBQZExZOiiH2Y+DdkZDdOVV2xaK0GCufYq+w1oRR9AqV6GokA7NiCBCDhTM5LqZUhjpkkd+xfBAJbatJFEsuJNOWFs4uZdeLSS2rBFyW4C7BZwzKTqVxhzq5DsOYwoawGY7FjW04YaMwYwcV6uqgbQRy+ZKjXUD3B87hp0NCOmyYhqzL3fdgktbXEWzONo1tUa3ggTJAgc0+ASqpFMPt+GP9wJ3oG4GAsZ1xDJWEbsqh8pNgaEzXiEhzhy8QJnELrq0fobTEbDX2Z1hUznwMTvqmrOVD9VETN1nkJ4G0l/H+2aekR2Jqdwl/huxMc21W/WYI/OuspQjwdpC+TUIhFIkiCh494xgGyDJ+VuBIQ8HhMYTMT0MyBoDE7stjvcC9CZ7KDa9VZPZAMyEiH0wL5DEB1yTvQv/9Gjzx5Vr1VzSjPcgSrjyk+6rq2JEySfDA1dkp8NYJBie0UWCaZGHiirGXbrobaxglXwFuophAvZs+zI6EZkuZkSQXdIxyWISCLyRa4EoVPGGB2MEeysgrAi7SY1Vn5b/4T0ODjTRjDQGNiKSVEGcRUU1qW5QyMmMTnb2XGRJkI04OcppPOO31bStWjxQm4v2gnE7Xck4ZbGjuhvHIETorGniIxpZlkj0UeS4HNtXJ6LUfWgRWWwly6vgXDEqvrq7Al+ovFEdVd6qiM2iER2hRRp8gQxTgKNNGKKuFf90/f4VRC58pSYVHlJ17ameGR99/Bq01QN3pNJGkFITyjQYr4zDH/dbCMhjRsAg3cZgvm1OgRn8CKousDvz28WQ8TGzAtIFmUykUoM8jxktgauM+Akdsf0mVILB2z8zSDyajKlFLtVSk45RsUjmZe4wU+sKPHKiYheSDGIhuv5jB65zkkh7oyU1bUrTo0O1Lsfx+qX7wZEddpVdsZo/v0hnA6STAZ5UdtcXGB7Ijq/Ol6M0maFTkvpDk0uPXWwsCazYEBFC9lB4UQ4fKsIH4DOTwSN6GpQXXv0YbDhdNlUQGCWm7HiktOgCAKasl2eSSbQeGo1SJ1aHXIYwfkxjCkgjR79dHdVBeU5kNvcKGky3hraLlxo3O4VbBuhNaWrwjPvOIogVN5ZHMNJr5RqO75UjmuLSDqZJAm1QYGIguQClm3pryo5NSqL+uRNsWAcM+J0IJ6FGWCxP/baJ9KiG2xhmExXcxchZFhU0dAYeDR3OjfXfSc5NdRZB0RASnYg+NNlgn2vXiwbmPvb6IPUHgQBbfWl9DziPS+qr91FOTPGjW7zQSAPYWk2YkjjAEk+p64K+1M/1nYd9xPhAaFpesnYUWSMg2NkDOhuQVnIulAWEAWpkOIC85rCsZ/cU92eP1tdgrKCKfR0TcLASdMYkt6quwSC1XaTaHEfoBWi8QxZqvxR6xwj8mdgRAekpbhP1olETeTnvGAvRE3T2UpK9wivi6MOcqkXFNfkGEn/ANl6VeEFm9lICzJoZyZjJsov4GEAbmcR+c9NHD0lm8O87K+esArHcMILrm6kMzSuNiOQWtng/GO35VghBTFIFeJmSMfAttOXynIaSBo5kpcPVIKxMlSTDJdrW1MHSQt0xQGysah9DDhaoGlg0uzHsGcT0eiXKSP6U57fUUxWLai0ekgdOjaeafhFuUPIX0lGqSoTnoH+6L4fiGVXmU8SKwWK0Tg5iKs28y51jMtvMUWoiqasBf7QhAd+HuFQ4MmzJHGPoB1EuLgg+hciNIs7EWnNxTM1vkFHA1CZjgtloAPQiCywPcDG3m3BExN1U/V4wCFIL03KD2FjkZe0U+tyJ20SHWBDXd3OyjkOcKBIQoqdrUoK28wizXQjx0s77w20y3xaV0te0HGa3b4gc3vzWgAEN7VTPhS72RogYRMC3iWJGJa4gPIWeJ23aOe3tqf4EhonNDGOeeNBtsmHd4MY0DMAQ9SInoZh55gk2RXG1bJ4cqLJNbycQA4DBuZqsrDrqVFdlhYFJbTnIhtScTvEz72RvmdaLYKyoPBSk5g4aS5TB3YhKiomyY4EhU5x3OgeGNaS04n1+1DBAQP3SMuIugnunvVNNmaGGmTE8kFskEUjMoKtYmVpG3FcsSYfXF8ta9NOB6XSgVxfldKq9a/ZugRLYoyfP+wYrApK8f1P0IMIn5+TOqZWXKWu0fk15/YDlw4ikUVIQEezBOi6qgWpEVk8YH0BDRphdA8V6jbfiU9wlBuuimLcxpBxYkAaDvYJidL1Sd8deYs2E6C2BVA7Dlfstro7IWIrc7BajSuMElvDglPlQmVSyWtZkyPDiReIGibduBxQEyQagym5ZJhCuSuvg/EqDi18tJ3iTbRnkIQFrT1zYkzncws2K0jFWLo8ZZyle3LA3Kn4y7mUa6CNS+wALoPo7aIhtSpkMjHeGoDRJ6RiaBqlXw3qzc2nW9YCrDJ1Laz7SY+R+hTpplxJNM72tA62Ts7wvJCjBjQz6v0RdgU9sl2Cler/FKjCPNxvQbT1Okdiy8N+5kjvA1bVl+wwyMvhrivHCbsNDv4QPnSJrOOba17UfRYKC0ICyUKXtiJM4CCifUTw4mI02e0MwZiMQv2/h7pwXVGNpJeZWqKOaUkmSZhZxB+uzQqa1NSPQ5UJUwCeiUxyxH1hHtV7/C3dN0cnXOXmjIv/vfoKAULiuOa/l6MQhC7QYmPOLVHeF9ye+rZPnLfI+So1GxRmFVC25FRvvuLESSfCxJgSSCsOGxOPtJ6VF8NgbGZvcYOQApDiYWFHaN7UxBiStu6lrIlWT1JqJMcI7daEMTQtjF1pNuBlI/w5qkbY4ZQhcgkmLvPxN4LNyGxiJ4CbGE4ETviiSqlhGT6w0nzs2wpVO+lSmUe932e+CLD6WSa1lB/TnH3v1kWiIw9hIs+bWYb1YGPKuCMv88ym+ZFFA1YgPIl5wUftFuwEmRfH7ll+yCMpXtYTeDQRqFKrXpVGyvCcVEAe5GN5fFgE837lNXqI0Ien3pZyZzqEAV8Nsiwt3Fpg+cPQEq+OLKYFVZQ1cydsNZGLyYu5hKahQQ7CedA9NgWN/WbGeGHTSrEW1zFf9/4gKHPPhsRaoqXZQqf792+vJBZJJnifCKJpgNxEhJdOR6oSTB97djmghbRTcQ+y3AruYg+0stE4x5isZYnThq9Izna9HKPL/5hyMHoYkgxhRzTkqOyq8HENHu0DNY8/DRZTXVwPll6z6nLnRVSdvZAkgmwnPAA/3OxymjS2tgIXWYBUUgwD3mxrbXw8Qs8+bqHgh99uyuLT8Wf0ZCQSoNxwEqQ6PCMM/maJStYt8rI+P5iTRQSBEx8xkQPArCvE8DnS8+WrmWll4mSAJOYYkmHAtLAHJVs4iRflM8rdDWq71jdKcGn43EP0+0R5vn06O22PJQ4ygDiKjK+NsktWPB63G3DWop/BLN5xtGhfp8KSgO3Pk0tYdc3VH2b5NACbHEyr5wXvEETexNNQBZpyW+GfE4ef+Fo2CoBNyYW6xasQpMJN51ZFJEI2s5HPG4wwu3H1C4M7CFYoMdkAYQr6FRUwrllQ0VQQ/CJDaYDe17TNDirh0geq1rUmMUIZGUjHgJo2z7m3WANKwWCiA/D6hLHuNIZqhwD3JNWUbln4s+WfMXNSkiu0iGCYxbmcBU1griSsGZJ6WM0rJ6E2W8bp8+56sFgJa4fewVxI7fkDTktsFyPvTJbN83Qwys+ke0Akjwpd/p7EQcL/w8vVGDIeX2nYBOD8jRSixRCYcaqsDZgj6vWwo0+0kS77+HjPi4LM2y1QNlb/LRJNyFSmmpZ3njcyJM40kHRQiMUjfQ95Z1Iv8qUp0fkjrrmJzQC+k0qhHLplnAB8Ryzi/cSPdPYopfZGjj7zr6i/Xqi92Al4nWbDhK3Cilxq9BanuhjISFxAIfBN1UjnJ+OHqDYUoVmmHSUe6YT/4GQBCaAleFCoTacPsQ9ehFObHlkA1oQuNLZ5paF1b2hQsVBYOqi3s/5GwLNPFkW8MV27lFBm2XigzsVwhG20Dp7r8XrNFipyqV0Rvxi09LXVoSCssq3b7dHOwmiSPQSp5rofv54M/jBbeE99jadY7Hwn57jM5di66wSloHloIjsIYwUfMuzvzFPg3tDIqBprGNTOpIlrIxbqO4feh8hwSZC+2TlVHAgXcTuSU3JvK3JkCvidzsIObsTMe9ylv1XA7GG9CGFIduWP6IjzhrmoDLcrJgSCzY1vI9rkOaMgVn47B9QxZf/jlXc0mXb/Ls8zLjZCasApUfWUaufm7nIYlNidOyKskUBevNCY3ym0Bh4YKj6iRlrDxg8BScYZLtrIoy1Y1aRxecp4SeI0l3+UnbDBXBtpogCSmPIRHGnKk+D6JhcqmUUyqUNK80oaGEpE6mB+lJV4VKWbI8wUgO/jc7DLSOcx6Vh0piBpcwPUOAIr8i6rQmyVk8FKFAg1XRoYOUGiiYcJYCsSLFxShhIuchcwU5fY0TeiulYz+JNTQRelsskFxSx5OcT0M3JESLNesLklyVIisEp25hllbSRUQcNBQoJ5qo8cVVcwLTqo1ENMI1BBJGek41GmWZpdoQeAAcq8YSEqX9zVLZj/fLzFiCIA9hE7rCrxfks0X6utYiGrwT4uoKQoDKE40ZL6FFLwonMWm/P26ezRVOdtNRzswRyX+Zwkva/O8pj9D1QZbOSwp0qLCxhrrikAoGfhlLktkawtMnyogIHhZ6x3C0YCUrJ/Qr/qLlegP+oNTIPjKqqwKxkHcq3FIKp/5m0tAluxtFWgQGXiwC4fZk57ztortKJo+EJv0w47UrPmEWx7KXNoetS6b1HCmP29Ss5cT2AA5fLTg001c8BGSqm39JnDYCXwzwAGCejwBDaKTngwUAAtN5Jtigwbwgab9PAIlY8OLWWBgYuwRbDvcfwU19NX8A2Fzo8RvUpovaLCdoAtiUl7nijamOIuiw+HYGpoQgP5YEdoAxq1cCw00uh4AQwYUQriWS3dBq3UQVM9MBKFzQYZT7egvCST1Rs6hbeAIOIF6/Tj6yr3StCQCdsAxZRKN6uiTSIL4kQEXxhodoan0zqjy+bpTvV5kiroLm3vRMTmaRHD20JP2KB8oR4FqFS1DXJg5f17rgDtoF8OGCcaNszKSt4MVawNBlhwusdOQymAV5t5T/nOmfrrgNhTNQNrNhzKjBbwD01c3kSzWBBgg2Qal+0U5wi/a1p2Q+WndPIWSpYvkNMqBJFG2JeEnssPQ2i1WY2E0kWF4IkAY/2Y6n0lsJfcc/8FkXGJ/BlKOO+/Hx3UVCQIxn9JbIQiDRwQjQmTOv7TtJ4CW1FRjClpaPepvgIPoBGAHH+gQMSWsKNp6CUUlX3frQSN4MyWl7u6UHZRrfbVXX2juJrKeVTTjyOziGcq2ABHl4fRI30pENnjLRR9NohVIvLNpVlLJ+4DJtyWipZcCxHSCqqPbX0IS8y4hzJaoY4R7vRyCYJnDyZisBkFeDAbv3gES/3aAlLqulg0I3i5tz8Bnnw7AyK1NWe5oSfN7TtuYVaAvvtENJuXM4uQcfEkGRbZk95y6sUoYQvYO+kqhrUgBSJg7OnmMccnfo4tzGivWWjGX21MJEnxyMKERN4aQK+GF4kgytBMJFpjHgGrnxGkQxAMUn8Aoyl2Scr5EBsXLKccArrWsKqy9NGho6Cce6xGAkZb+0Xh9/+qItDDEb61Nd0HAjAZKiCNcN5XRQSD1TlJOoWqjg3wbiqShz1l4WUA/KGzoTIsamZkMm07WUuOE8IKWOYilbV9zdCugc8kpZGlC0hrSovKxX6YeiWFezQ4EM0ECWCuYnofWjOr4uxJt4sCgaMosut+Un4yANirI4sdaZ5dKO3TVvBoKi4yTdja8VsGjR6LR4xDSktzloGu4YTTBCUuf9aGQdEd8wtc1A9yEefsJ0Sx1thzQm4dhm1T05ZELG6oAYetl0AchtutJOoLbbco9ixtgsMZ4aJ78tHMfVYtOUSL7bwn5vh6AlqR8RRKaePKtDY15I8y+JEzWq6mICAOnwAk6gnD1UiCfTfXBn6w0ahsMhuA3C5FJUCgBF05IXQCQa9SSa2/d9YiAjYJhZ19OzExeUXf359UrTUwQQhmgE/ZA5iMfN6K14tsJLJ/MSjmSqWUNSu89c2/7rUR9dxczHFRWIcS1vtFxtOXYgtRol3vaPi7eapCQAFACSRU89ENT/VZjVOW0JewGuMRiMceAQ83pjNzfIwZP+khoamJs4Nyeb1oZoI4V1Bhi9w6SHiOAloelxLwKd5PnYLYIiKgCP735CM9+5T313e+SkCZzpEkWV/n2pNO7+l4N2B0wAZbMmwCmC7/44EqFfSWSzhl0kAtUeCHU386iKWkr+MUJQVYZnQVF1oHGEUXguJRfEvSOQU+v5AyIeiID1jsE568L0V7tud+xaS3eVDNxk4G5JdhOTG4uf2YbSlYN+BzIhaJaZOOCTNOW4iacb+NOwbDKNJEO8pCFHDTpzKSApZqO0uYoxoLYIaqiW4gXDqRJl9ZJEP8MC2hNTQvA1ISdXxapZvh+ZBbkme6E53FZtQCphpfbmLQDsqC/3OKVc9GTxzouwQTVsEEwot0yjD2Y4e4qx/0gsOQSFqUSeehCWYOTWrJbCD7ONYyVbwI0BpM030CbkP7BelesMCeqFnBfZB0d7Qcs/Y5ShEDrd3xWYPSKoVkwt68FEY9UViScsogQkYv3JLg+/p0RewQK20B9yfOKREOC9kX/bFftfIbcVopndqer7tjfJdDCH4JD0QBY921l6MXDlKAcjA3UKX/x3WLMSM3hkCSmMZaFD5wuWxbssP2vT8ge+oZ4nvDv2AETLowaIPonQJXKT3pWf/im5RRAkURYPaoMAjYWYoo/FyjuijDOAJQ3tLBpIVT5m8BWioIqHVeC2ajItEjj0W3DLOSByufoNbOzRhVRT0hDtMUDbeKwirSGuhSH5PwSDPEtj1hs9Vxh6xIUguzbBj4aSWoksWRxWQ7ifcZwHw77CzwkgwLS25BKk1KRQ1550tTB+QeKmeH8bXIyMvZ5siIDgRqiJn+WC/V1ToaF4bIuQFmT/Jvo5nY/7ZqPiVinIaT67Rjc0BhhXwCVh0RfRDKeu08xMMkZYlDBPvzY0DwMgRXLPj9pG9sHJlBib0o1ynqMvAl/8D30QtACPLOQEhFflkzY4BJZ+jrFh18YDCXJMnlkpE3o409iDJXvXMSZZI55gwNt9tYxHOvyih6XLi871Ap0aRkSqbx3Rdyyy5Iv/S0mcSW0R9Bw0+PBbf9TtsTpLx10O0PWRtfIpLrvJ2hBZBUqcJEITZWNE6JgIm/zUapAwaLd02YW56ocqOFSigbyvDQqNUotO0RXcmXS172meAaIHCPCITDoF/oXYkjF1LQHooBMBpNBAeKdekDks8PCk+FO2HYLHAAqI2QJp3PMojWMzzBeBUITEMJCFKiqKSbPCwgRjbd5iRxhASH+skE4cCtETEXVSJiUpydAvABXQvAN+eIEZnvLaMypBnSidKK6biQCNAMGlUyNk88jc51CkpGkmog0PtVtOWlWncJwpy9R6HzI3AcbEivDWJEDwU47hT2FMkaWe8OVWqPASwGjkbAs67gaqFVgan5vrFvFBAPASHxFTQ5zOjRjpOmaOH+FhNAJsjOQJESzvPqKHOTkRhxemPs+LtBoerOr4pHe0hExGeNhE5+aQRE8f/h8+nOZXwgsCNublY7rrIFoa8uBMU9y59CSZdJOo1gQasCoqAMGCVIhEd1YCXASt4PDCIyPWQbCKfLh7aX5xz173RsAgygOxkMrTiAkCCEu5aAG5PyOYC1pEyUD/ECPA8jLPoF2mAAgRqADuKfgNCMCBD1nItANgto+vNTNrsDYD6qjDTGvk4hQQ2QEtaNoDEGZrK+Ybb41g0wsiBNiaRh+Tm4NeXJV0CiZfOhZNjK1xUYeBCr4V4B4RkAiIcCPcoIZwLmY9hlBbyA4QNIU060TT5+A4H8cHjXJBEMB2sJUKZH0xEFB8QMPZInGdplf+mOQTCgIel0bj0d2DZ4iT4tQZ6uwQQ2pFvu6FlH+DWXDjqmG0ie5EnDMEeg5vlOOnIhEAh0PguhAlh1DDpdmdWM1lXG1fC4xdzp4sCAdtbieIS4GbhDMOzccTofZxe/8rz6sCs6f0EQNfedn/32TTFBXNeKpUfV1hxlA4DWfcZBzX20KQANPA5WLa80Q5gNIVRNAj5EIRjEs6AER48koA9wZkwJSgB97+AgMiw6ciEnLB2ZoLDI8XzGF2gxMpXuI66wg2H0D5YWyqBvLFQOR5VDKAWE5HzIps8hOxafIixbhAmxgLNGOafcn4ngz9DktZhGk9MPSKz0eacR5BGpVoEPjutbGDDaztsrS/TJUCPWSKnbIHHMAjEkExya8JNfwYshMxRFYSuKz4klqrWhtRkBCO0mQnEEbACrys3etF/0UOAeMi+zKqhlJsVi2g1LwpUB5RLIOUcMRBfMt8MI/mZx4L4MeqYTFcrKLV1DHhn0RDttPQeDVoytmpVz3WCe+5plBFJCW9TpgenDEKRG3VRrzbFTIMa7q5+s2TyICJSKbhBcJvKpLaAKiLdo6UGlNjhXO1FnJxYb2/Ar+wveEuNlP1HYpz8uVH60/EKCOC3YUFszg522suEpIJY4Mv5sCgoRvZhCLRC1aEP1JBkSSWXXHB3/hI5Pmlpxdo44tnnWPVK8ZKfjEEH4GkwVek21teV/W5NCGjqUs5hGeZDJgkX7KGoDCzhgHPPv+EjRl35CGnykU4O42YED9y9kngInhixFA0N7IgVzvQ0rEznn0WAxaStUZsgfiACpD8MslzIHVETrAgZ7Yik2SQAf7gL4mCXke8Gx/8Fg0MderhEOzjzIHBqABd0AtVwMsTkYQeJ8ixkQFxNkJqMCi8Cgglkgd7dxVGTeh0YaZdRZbRaVkPls5k0GwUAEMcGRDN/0GscAs3KNIrNvkl6dq+oJkQqIdajwdiGNgMamdIkG5QGgY1jsaGMZLVfoOSarAOj9M7vQB5uy5Kko0Bz+/wGRtUAUmy6g5xH+pbpgaXLpQOMZkPfD8rqjA7aWlCMZj5AT2EZ+DZkfojB4x40jngjqq0MWeaDe8c+orxICY9Cuefv3G2WShBTHTfW9yKcdp02tZCehYTy0scdKHvZJ+GSqJyD4j7InsH1h4EJJO6p+oD1K9HHMElLhNOKmQHlFRmG7ZonPYlGYzozawoBn5becdRGr5YVmoEvek0Otv00AotDp0OCvrRrIm5mi2pWCiAKnQKbFEUmiRl5vGuRdxGmywpAyL5/wyI1zyDAaH7yhSU9crBjODgF4Gjl7PYeadzIjthTWZjy3VhU8sJ4QGLnwfDGyPNnbWD4aXjHYjSW/Q7pswbTZ1RI3eQD5oFtqp8gHQP8Mbznzu1Nojaj8IEq3jLXIlMRMY/GojCDoAMVNA/n9ZGopO07VoqQlWYOSzfSjm6KGHXA3FHEhrkFVIwAkLX/MwiQswlAb4RUNcIK8mq7IxWJX2l1LYlYqEqTbjQTJeCYTXZCeJD52Ppe3XAgqMNmeUQpMSbbJulLzFQhNE7z7ll+j7vkgSYawOpfb/4YnpZhLpQk0UeSoyDoxpWH0OSdd9YkWMNGvY6pkKKsN1f42oXF1aUB2wIhhRHFqSPUyZam0YVJiZex05a+IlqYm8EMjifh/xV/ATEPJhgtDAnpmVDi6NSXnIvAZWQwZR7ptOCPs4DebWS+hMwAnr62AZir/Id4fZnvVA+eEj7MpsWpiGfEfqQ0Iu4I5EHFhm48JSBQB1t/IMAtagjT/jqSqHPYSqCAgkQi+rKNE4LaZxL0ZwG6EhQg3xzDSkZy24a0cVwWCCC3L87HGYMGHqMBNCLZb0b4A0w+ognwRjAlQRykIzxSZ5nobE+xnLiJoQtoJ6bvYNe0AGIRew1FIAkSlDpARlEp9G/wEy3p1oV0n+M/CAkvJ+1DJUn4v4wLySSgT4IYpgwLfBZEVfjvIFzVf/HQUNuaMUQfs1BNrS0qwk829i3YjQIJTa9ZiNqZkYxWIt7LUHFlolBVyFviVitJQPQQLvGU2jnkS5QW6kS5O6GkHQEJTAhqlbLewGvQ3Dnvw87VCEJ73lWAIeMSXQE1CMVQiJFgVEtkaJvIsg2R7WRGDF2RiK4LsEOMEyzuAhFfxbHDWOkIh0vuRkGkXoACAqRTfROGkjzrU4BCFoEONhnXhe8ezFQz7zxYmEoLgOOzjVmphskbBU88O1yCMiNSk4mMRnLgXILexFoV7zQtVQXRF24bdxOB22OmQA8M8Rr2CEgp8/aGaCMtIwQPG8jYyQOMlrrx8UCa7SczsKPzkqjLGj5f6O0nj8ICwBdGYiu9u5sW5h8DADRvDP2ndEVsgWcnVANfic+gA0GEoB6BVeDvQNnqmBdF2ThEO4VaJsOLH7JvrJgRm1Lz7PzcQnqhINBTpJgT829/s1nkyIDelyDe3OlxnplxSpI4bply3sd8cOuS7Nlcnkwa5L4kgu2JiIFRHqgK3FnCQg6M0AKKMUa8X66o/mhHolAgFnZ97xdhZ+3aCuYOJ4LY4KQAHnMNqOAD5cuFtBWMoAtE9QKzJns/vboBZxSmxFlmlAfZH1I/AbJDmVrwB2H0PGYEzbVWibhnyxJrDeaKqEFhum0KVCG6WAvIOQbCEOx8GynyEPLE6kLrvJOo1mDYyMosnK19KiGU56xjHNSPbixYResEJASzoIisqhXWCSOIkN4m3tAJg7SbLIXfHJlBFGYY3EBt0Kt6L8Qq+vEVZLnxw55aiDEyQQDHGDWRaOF5UouoG6f3hjPHq1sgNlNyp/rvePI4f74mfKSC0WFkdxlIlNb9jOz1AiRUEwMAtPv9XAbApNheg1bBGqka32TpPjW7kT0heg5VzSzOWjwlW2jHyYsbjAgcd3HQ4FGOQFFoRNRRaEtDg/MqEtDzGYIDsk093AQKaEEfBgiGQrFZvzUD/Ah/HTjDzUv8W+lQt3RiI+nzI4vZtxkP2wnd0Z9GJsgp5h1vsNFi4ZRMOxCpJ5IYI1Gp03dlHq/XbaQEMsMYA2jz2X5Si0IPpUgVh5INLVHp8GTTONnRarzTnVL6KlQmG5k/j6dqvlqIJnIvDvA+PUMUqKgQrQRgZkVo2kHJxNSAVmJObMSFXGmsWXtDGhSv3BmuU1Wn+VKyJALIjl7b/JfBU1s3XkEsSNiXzCoOGzLpHJ0S6JMSd+LLEExGU1D3BAhb7ya+ZYtY7IeknW+3ghwbEDNZIJa/KD6LTEPf0c+MCURf4Cjl9eSdIvIUZyahHRYyD9Iz7U6X2yiVsWfwDE8XBLLNAHiAe8xkY9lSwCwbhg/bMO7zxMjBZzUgfSX4jNq6Nw6/nOKnELxahHEgHoLMhbUBNGGXrpGMsI/qXSTEMuT8xFCBQmrL4qxZLV6pXiU8fF9M0YoQTWtd0llLp7MNSK6RJnSTYwVVmZTjnFzTgQQjIJeo3wOvFgbUhbSBWfbEniZ6CC5GMSOjFeZ2XTDD1Is/4K8xumxhAKier2+Jhx3GdowESEmxkpwYQYYK7yUmAgmVXqsEDQqEEAMNBcQCmekxmEKViSY+buFZme0IZtPnQ5HVVs3AfNq6L9kWH4Qh4AjHSUygJWWLQqRlqEBAcyTslCCigOLVubEEaDugLE3fRPLBZ5hxHUTC6MRDgESqIQGRkOZo3XJQ7yq/w0j6kOSPaDJUeHAqC08JWDocUqFpsdYByM0jiLA4NRaiolKBCAvSzYQEICUTN/E0IAz+zrPY4chBkUiUVhxBzXieimC0oNfehNowoBuE96iCcsRFmu5lNQ+b68skPW+EPmsz7WoCgJzoJ4ZAKXjPR742cyBIBrsrpaeS5FXiJmW8PHKahB4A2TMWQwZLYAX+RLMCVhyJ2/NTdEOYhuaUEgwjE8pggEYPdp5ZAFZTuWjwRGjDKVZAe08n8Qy8Bge2rKxvCA8mmM5H880t62UnJRm03iIwiSQmAWcIySh3JajSfwLmvjjDxojqTFpmDIlZbAzT2gxwVHuGcwB8CrwkJrFNCED/5OwZvAW6zRos7djMMrRPW2zdNbA8v+J/f8dh2OA9tkxRtWBQ3Rw1QCUVHgRcqasnxYCJAKMSplUPcrt4CUIP9Z7URFamhaOGoxxjegok+LpykZ0X8FAP6QteAx9ZthNz7B4mtwsQPxjHTAKxjgyzIBEMFvT4nClYacl+1a5iyQUC8BPBzFmvNgoThKUDZWNaINsHoBB8g6+wZ9QnFMATo8EniNCdUud3fKlWjzzNdMGQrMG8ERIT/qpOLEbDTisdANudrbhCCQ5YeQxPobRxozSyxPjl3rVIoIvVZN9lKd/ceewAhBA+1tHk75BsHAv2ICJQ/SNMbFMgnRGQB0WRB5rGSlAZB+ESmsYSUw4UIttU0wmkVXAFd7zmS3kc2ZEQiAjHTYR5SDzWSsVy8V8BDiNbqImvOM6eZ0jcLgwWhKPmqZThKVq4OzuRnxGVp705ORfODXQB80JhVoBJADI+AIOBas6MwYgZ2duN7HdCNYtcZc7DBxJ0D13q/gS16wfbL10EBAQFguQnahgEHtOr31WSKhZiGJGTxdmAchiyL+gAwtpSuyEb0SQ3MiL8IBYmUcaJm0Lhrv7ez6LzHQPva3OZwQSgGsISedeYfe4YViDzgM5IW1lzxpRCyNidpsr6QI0eN4WyBGjcxmogGxQh/wDtAroYHbgV5Aqtsrkg40bkOqO4/RgM+YCzKjOTcY+YUg0mpDW2Xp1GCLf0VK7T0DAOqdBt/LempzdhpVESturT0SZJUcbclae4A4a2AitIZAS6IRpopy4BqBY8IMyK6C4oODVbY9gQGd324OyzsirOrNbpw6RNSoqtLROIYoN4BZqVFAmCAY1lQDH/SSHfgTwY7fw4aT0IBvWwYvjaCAysgEbEkZ54iBCr5Gf+5woxelAk23NWAd8VvMVp+gkZtqMEammVtihFeB+1W8FPpfKQ3Gj1w2XmeFH3zNq8EY8Rvgb1VO/9UFUl7bNoexgXE48tJGP5Ak7WdISTIIWggMIQc0kJ+I4Zmp5GopUqQCx5lycMaVdBgwc0KoBKEFHqwoVoAPdJiHvfGBgQlOQ64ErYe4g44doz3cIEYhcBTtr+B48uc3GwBFYeQCL2KY5exPAjE704KR2JtcLzGFZ3nkFAR6/B8WT1+BkSyzsauMl3UR7zH5NCk7kDDhd6cQygETHHkUtw4zJ0VQAHxUB0oIJMPjJ+neaTmFdo42tZEl2vPQLvso4nYvFrfOPcvPEMODYmiOKA3L4P6VtF/3u6h7H7JbM0eYtNavkB4BeVF6XMFu5eU9hAt75ddacUhu1sM2yuUA2Yg47aK7NgJGoqUfg6yT2Poea6wfeX4tOj4nH4zdr3xtRs94s0XGvKtpZZE/KZobKEiWa8lrpgbTjaIoZ6CzKPu5XmenDmuouiaBP2LBL72OZDk8p8xBUeAI7JY1bvuabJZgUWtEYgODoB9IMlzMq8IVE8/F0n4SlPc8TCnbOE00gAfNImD4F2/RWN6kAiUBVfZBmKUWHdOAMiJkAKPiqSCIDE6hwAMj2dzGmBsUg/RZKr66guahvOQT1SEu4TB4iMkl8qwsn24OHiNXtDGbRohQM2IvHJGD9wXihTq3oVaFNBDlJK87rlesJLK9W/lxywePcva/c1wwuxIZVR2Mui2+4RByEdjm7tJd24VuDLt1Ws7y2U8jZ9AfvaxX81LKahcGRrvViPIL2rvlVlQ/FNFqxYMSJ5aQHZYQfC6MaOL5tLLp/rxK3mTbmTGfct3DUOt3Ncars45G4yCMsFD64TCesYL9+YdmOYHI+I9eV9x+8kFZjs5VI5Z5sJ5xGwNVGJSVnc+dwnBqZvK5+OnbKNcdLsgKxBPx45ox9QIIJh+sDSDLjrtxt6A/CFhPFPO36oHCi8aBuuWTovIic144FPR+rLt0xM5iUCsdcb3DxoEj4FGxoTJvPzvhaFKN1Vi3S+R3w8UkBqgpeN1Nw5LvUdnwxANTLdAgDsXJGhpIbgpylDNL919JyNs2HLzevsLjx5Lqq3TEC0/VyBA7maW40/Xd1UAFQsscimdEvisNV1NZJ2adOUGplWdT5eoIbCHYh3U1bkmYAZs8oJT0ooS2SXZL5FBa206lQGoaj9oAyWJLokFRECNsvZB4nsjeio5hsPqMdkpFCAfjgLIgMIzJGCiYFRlRGSFNRAM6Nx0B8miqYByq6iepmSxkEEQzut6REVvRg0ptC2OjBTDbXSAyID/Tbk89kuNX6Ij+kWSVCWF+ik29G2ThvV6l802APpRXBgMtrMsZwlVFOOuimLExJVCriyjaGD/ySRZTN7kCKukuivqTid1aRmJy4IExyX9zNuR0T0KYPU8nhIGByIHlZUywCy3sjeiTTTRSdOwerNVNStE+s5eVmkCUmFbzZEfqY0w+UhQkTlItQJLX1MN4VdHXMW0KDaAC2hQKD0JSe6EFtAydyTTQnBKJoXgAbtx4mVCEg6UVYXVgoTojPcCEbZjDnXR9Ozkta2nfFgrAgWlRsNBR2xRlxRiardqSkMDiUB2vSOUy6BJTqhQLBJtwTbnDQJM2noxffdbZujznATqHg6ZLo9Ux5xLf3epXkTXsGNnRwkZpbQceNXnR0SFXTIRAyoFGVcW1wouVb/Tg9HA5JnKBI4pZVvyAYaMCECY+L0B07mTL8H9k5nKSvfLzKdqHiFSLJ2uPfqAwnklwWkEWTGlczmWwwNZ6Qt3ZEoL50aDuOkJY+Ko53EaqlFgVBaG+SVU+WuysJIIHIPfcelTR9O6bvdcoQNU8CMBTcTSJw21YJXpSfcCjSkApwSqWCLaj9UkbAAxCtwaEYnqOR0WLPiOuZ0N0CUd0o5n9qcaYhVod4Cu7iYZtgFNVEpkzLjgMCarbw2sLLmoSXKtHdU7Sinc5gQKnUQJ2aKmyV2jQdrClQX53UYZ2uAlOqIlR2xFVbPMSSznbVOfGqY06ixmcLMhacjWbC5tArZL5CSo5BHKdRBKPUnEMMKFF5nmrUTqUB/Fz8z194q1iqMLTjDcpxs4AmyBmj1RLAf7tUoNMEzAeHlIEWRz5MNREPsjlRLgHHKteSXCFwhYHMTlX2DmLyGCT8xxYP0BtIcXFqsC5ss4X9FVJVSUS6IJO9VYKFDBqWL8GuHsVeKiUR2B8qFVTMPJT+HRpKxHdhu3AXNukz37hkqcxHaCaz8sB5KvSsygXpU0FCfcaVfMmPTYDVFWkTgY1SEBJVyle37apCxJKcPwgY9IRCB0stSEAtOzZP5dXqQgRGCU2iyDGkICOghKp9kxpC8cdknmxtKkJkNWVJ/JXtOKmAhpGWnXTkpLSdtI8RKI/ECJBZQ8BOOh91SIFiD4ioDC2H5hNlzuA5RCqOdcHcJxZOAgsDdhOEGkfInejw41sMHDAU3ga8MsmYRumbqG3thstIgLbJuGblhTBWgx0C3kUZkTTX5ixCYFCyZHkxade5rTseEjcXl58aArpMFXvRiirXY9HfGzf+5wDQiIPKmgkopCmGJ7v2O9BTwdf76oLkA560NZDN/4LJL/uJXsCLbZiftQ0Npo52t0TY0j7U+LnIbQ7Wk1EJxTq6MnNtuUEVU9nqp4Hp5o2B7QAjFkToeO4eizNeDvsHn7SzLetOeV2BeV2cb/kAgQd/YwfJVFYoEh+krWt3NcvJRYPKbg7k/goP08eXmpmDYeFd7A1/kXJ5Gl2aRpSm0YKbCdiCW21AC/ZLytkcNqsTTSgaCj7cD5j2e+UB9wlToEFvyxBiBWDQNs0sF9WFwOjHXgkWC77vS7AGXbfgTOS/IvyXGniM0mZaimZb9zGcgwVIg2ZGWaHaVTagRAZVRnRorEvk58Th2jwgmGQi2IJCP7BkcxBDzz0FCjqDpLD3LZfXF48Uz8HEWqDiHvg4hY8YTfTiERsEHELgDwEhYngAc1X9fiZ2lT/CUOFsVh/Q6GSCLVlMICHcRSE/3hB3bFnt2xYK74iXODkwCdPgnLOEMX5aAXTkhqeo8HtyJYmAfVbrd0Fi2rVGSuu1YR3b1Bc57aHJ8bBW4CcmzkKE9VbJCy4aZp+VMCUNtycTfKm+1aPOqXiyF4MANLMTSxMzMe8jfGJmS/8Y23Qr0z+T7WCmulAhzhgTgsCVc81xvpFJec6I/XEc9hTniTW1RbsEGgZCQcbznvFESWgS6CklqAvjHOn5jV1BQ8VLwLjh7vjThNc8KcE1DpGkYYTXOANWxjoqx+VYRCRVjprV0bwqwiO1EXoVd4uUUa0Nby+DBmGuptMdFUGtlWR0a4NadtgoygWNsJQYXRTuZ8BwIIENnUWp1QA4RCIslSKi1hkRYFeHNyCRigrw77fgQVL+JYXwFkCvA/O+JXk8P342QIKBOK2amAAAAAAAK8GKxZtm1aOTgA75TLRucRWZtwAqkVS2uJd1R8pCWILMepEWTpeuWCw0jkunEaXNUBDV3VTbbGyA1dg5XH6BelRSfnFk/dmPx3DMeM3B8FHpxKVctp7tEebmVgdjoC0SdcJVqzEjOZH4rzZbWuVkGsRG+h0w38c1G/LrabFb12wJNEN+JRwxub8Pmvei04+Wb9bNrH1DoRozblMDQGspIEmw8t63am0sU6/WIgQMOFhcQ+GW9ZTmY8CyLdYaTKAwAStb5s/56E2I8Jp7vdAUnNhMw815E6m8EaPRHq0+viThsf+HEXmCAgUDOBZYFkihQXPQEej20uNc/L3wnhOog00B/uOJB44OYvSmQJ7HsDVib/Nh7l3wPkBNwzaMiwqhFxgeG7Qq31duEF5C/nKp6UUa7P0nSnDOSx+VVAxxq9L1fvyXFmA8QNf5jBT+KFC9woEiSfgLULKA/2KVQKwLZGJwNJXUXL0JAKXBmAqwRj6oIfOx6kbhICEshzWiVgLByxBIW2ayjPBG3IPN5/gTUlceUHKA5sywhlfIxg+NfqWvKQtdABCIgqYsTThOlgFB9lZz+FJhLDu4y140oKWGayPFi6YXjHwxlEIoVlUh9erMUiZfQySKVpHD+aLnGGmka1DuqSSD0YpuS6LMJfAfSntSEVRZFrIabvwfEfHlj5nVKRiT9CtLocU0SSKdWHdTTH9VmAZS2OAieF83TmbBM6mauhVf4XUQuvgPD9QX166VA5etAO08imRsOwUoTECtHopIE1nMyS7j/nLe91Tv/lyubxgY1VdnUvcJtcR5mCtKOD1PBgB5tR0lxsNieouyDZbNruAGvv4tBg8E8LQJZA8p/iQyXIjCiQz24U4Irif7M9sFGPdxs1nWGTUzwt+YkhtIRiX5YmN6ubMwyblAR1apqOt8n3tyYT0Gq1tWVpGY1fmKlP+elhV+Tdtn2hkNl/Qnfek0gZI+ar4yfvwzss4DTrPteqDMJROAgmkQifSLCu6DADdT6EbrMwTATtNcEwcbwuZzuYlp0tRAd5TAGas5DTdtJ2OrBqChuH4tWIVMPClmHPJnTXOVL8DdQDYJTLJ45YKMOnAVYb17QHtVCBs2DB9p+iD/inVZULIvirGzV3wHWNqsvL1LnZ6/cL5wkTmse7KCsFUNU67+nJj6jwGQnw+z9QshNCSM2o9Ut7XcaR8gOachKbLdvJZAAspkJzlEEtf7Gv6nRWwkkOGJQNe/mfobq39hAoJdmzA9Gsqh0r0JWih2cjrzsLe0008bBI8wNQFHTAr+zD9TwCSvcAEc4tsBH4HVc+Qg3SYwwQo+neaohihlWiERaBPBUnL/SD+teTOdUgNIN1F4kywLiTQqLvKWrjc7EPkHkwOMQ6jMugOgVBLjDTDX75CMwidBBUJ4Y0YPuEg75cRH8cloGn1Fm9kUp4LSJY9+dOP4TAAXR7EQVqTBB2Qjf6hERaaYdHQEOPAql7oZu2YpmkapqclHZKK4qBoW8dP/LmgYucFXlZYgkvBFtGlZkKgQA/U6jmVOAnkUWcLDFgUEKkQbiB/hq2wMUDI/cQbBrXVMSFqJMh5JPKeU5qEiR9RZ7whNsusuuapj0kwwtDPh8JuCD2S5qZ24KGNpkXWi6hj8UVEVD0FDxULW9DdIUyUFR1+rBpKWLX+BJqjLkMJSrVR0YJBGW1jm5/MsATuLOdE2ETE3nTIWSdxt2GHJzCy5ANBYZIdIaYsxIU/kWR3Qt0cSWW6LouuEQIEMFeQUVWlHD1bU7GM9rPOdateJORoeHKdG0VeYmAg0tvzEwHgHzOU7kxkSNBqchPgtCsBOuXnGrcCDZgVatICOJwEFx6k7yNRfFKjpCVRouinONMp7bnje2bTW+YJggre+E1gdlKH/0IBr2QfBdPe8yVJz3sFdo6T70XNV5Db8M7jiJDZUADPKwhtLnCwxpIqd3rPr9JRnhN1YIzaADtOrIwHrCw7+Y5zBl80TEgiKCeQH/1WT+EuieheE5tfgOkSW3fu0318vDTfoIivs2lLd7S6UCyT7UwIF3ibNXoG7f6fe0IQeegYL36sStgUf4bPCo4APDyv8voDLQ8FhL3xM9wpPrS+JbbyQlJ761fbRyh2MjY4NRIU5BCa0IA1fAmUdYeqAzjJb86Ha/IH8R9yl4nxse6Ol8shqQUABSVVsbxjrtAmMPUQwIUDv06tC2cNgBtV1lmELBdK4K29v1jbgDlnZNpAAd5BywNPXOXsl8qTMlHAB2lZOI5RVT86CaeWGI4hDE3kFP9vbmIv7bA7Z5AgP+0G/2gOtTV8Oq8QJsIUxxRTGmSIk3FHPtxnoyJENzQl283F/KHqXAymUrypZQAh4YMlE3msmIYFYRCJ4b6AEJhIJ3UFhGSu1E8hdhjSchuC0GoQjYoIofIlL/h6cJy850SnXlv6UBesp3l9esD8YAAQt55jOKx6iiPA6RAoKkfijDQ4ahAg+7buaFhItXkNNeXdF1GnfScJmTAH5aQBMRhFdMIcar9Pg+aw2XE6gpVmcWEAcWaFzCEC0wanRo31GHgQJRjYrjoCAxFg6I4FdWnEioQZeb44AKlPHBqSQE6CkwQHWiguPoNeOk0IAfUq0B24CmBEFP78/1tPsRBAuxVkDKP7FQhgUPJekDQhbDI+5qRkdEKLkAY8hG4BRjmGBDqQ+EO/OoD9cCH69aGQJk+xRUq0GWd4EF8wD7EAUhbVDiofFGS5DDA6GeDHjgI20t6J40EhJTAU1pTICRiRe/Dr6V0z3AAipHSYe8LN1Ki/iaMmGetX4oOI6sa4kFMBtVY38AfsMJIomxfFkFUJyhW4bEFMA5oB9PwxBgx7F9NxAxCBk98K8zKrFl0ouKUBvoRMj5KODmd2BnsOxFzl774qA01O11nURn3XgiUn0AHivKjIIcBUlpXBQDkigYX7pUapDQS8DCUGbpJPMqvGHS43JUKBSi56mHE21r2JbqLAF9Udy5sW4UWBnkg0FB379YlH1y6Bx3JBACLK2rBOv0UCoyLPrX5lEuvAWH3oWFxHb0kO8BYkVmB5MbP1k4dNwGkAxK0D/H9UhdrQabQso6rp+rwv7XaI/VmBTKGkWDBHAC74VXjRG1raghQvyz3QEiMlxWOQ75UoSaeRFNoU3yUghNlXxEEZritV4acMdX5tHpZzdRbYGONi3fqtVa7rVJN745W6WizEqF/zAlJzLRvBsuDjwO3JeVD5RljrLvBeQQVRrW9i0908g3WlWKCQIGpcbnCZB05lJ54n/vUoKex8TxbiV4I2BVnLfP/XIR7d+8qxfJFa/YGsaWjLOw0u3V7puSKT4yeB58NBLXHIrY39AXoXTa78zgGSwhCGosLaTEaWfNtt37npOfp1EObIjWmAzCEbTg+iB3H7L+z7ZQFQS2UhF9kCaJf2JD41mKkhwh1Q6cbnkHYQzyxhgUbzbBwS/8HsCYnC5d1VwHlC+xz3+2U0w7oYE0PCFXJIxAXAh6GESOKiRAQMUayGIXmFUBcy7pPUrrAnfCjluALOKz4CJZZKOJ3ppgC3vTx0EJ8pK+YU+wWsmppC1w80RRYDXjSJg4Tuy9Fpe+85+pz8Aq3VmWnnWiHiB3TUOUjYd+pKvEa9yZFDZGYItU5hhm+gayzDxmDUgLcxElLEA4sUhYL+IaLh5YEk5Y+FIoOAVMJ1tclHK0X/TaSlwsVnx3vxYsBVmJ/VSgYqq8OJ107sorfWS1u70zmOAfT9bxKha3jCqMS63PFg0sSSrE42hFi0zSg7Lf1jQ+tgvgbb3MW3Ip5buLaTFrboFZXjVYSvaSsxZukFi7rdDWPELaa59yEtgD3sGrSJusOsNKwhoVFhdZrQRsefmq0tMqeK70+h56A7WLvVQ06I1uoi1c2OJNf/owjsPCYx30zI5SRdCgBgPMGRlN0ARaFrigBoi1xcsCA384ApIeNAAl/iBMBGBQBgBeSB8JlYIMZdgauqANW4AEsRgJxbvFa2EudAT2wjk0oeosrCFpKHzvTry1ytalWYod6IwaDP56F0g1+7I1vA1szNFizr3TCHY92Dz1Qw7Tt9ie3m3mxdqTKCwsNrZNJOlieR1kQl+pH+04MktrIMjf4BWY3tGdCiNhpXLZurg5iaP3BUBlwJeA+f+q2rZChOTVw7q4Ftn/v8JTUwPcb+GWfgwCFldxgW8J6JvW/rQYji5OBAHF7bnGYmjsRGuAUBXwvZZGehDS1w7gyaYoWlHD5lWKcZHHICusIMh4YgWQEJeiiaSq4AaUHDqZLxRlb/DkFCczjSzSV0AF99zZLwzOV9P5KB7qY85dYTZd9jD5moOrB2TjcblXdD5eNGCtsyORtQsiDUsVvAomgyDYLcHrO1PBsRAAwEoAZIcay8TL0Ui/FwGlonKJAJC7ShmBFq1CwNHWWnUh0s6rIDhDocI4D7Z7j0CweLK32vtTny9kbOSnhVcOIMZSwJ2uoAXEH9CddUBSuZQNdgFOLHISIGsy4ODS1YnQP2G5VnB6nzghezMujpodCgQGbE1UxdInZILHsRsiufoqMFLUFzzwJ+i6J5dWbsaB/e0LRKtEkDlSGHRKq+1qh3t0GTkoSPCmymkkdUFwcUysuDjEPJUN/J64A2TmGa0BwdPjv31k6zS6HRI0PB2E9WImr2H8TkC9K5GpJONhdt/iHmO8JSapVIBtGmS1OUYiNm8RN1cd+qakMj0SCDt9q5NWSxAn0j1byHoynM2CAxITH2MLKjzE2Dc+yCEQ3QiEB4Tp9ZXzhwZkOAzJ2QQZmB/M9rQTr2xu85F0d+dHtoZyGwlryKhr7y5IMdnrF5cDyxssfLE+iRM9PLAZQoYWDyF/WUMlDOmPD4vYMJYOB5RWvAOVP4Y3JHwZHSR3dxCvs4/fQSG0QppAh6b1mlBTNsqLouYSIVLQNlZuQGNKvOnsGe8ASVBiIaUvHYbdVHggKJTiKqFyFE9YlcR4JM+3FzC27QLABUrSvEHx3klOvwa+tSGMh38TFxto4TqonIgaBz7BvSF4fX7hs2EFR9uNcXQqQDwZXSfAhamAU3chHXi5QhOHRogu/YTqznC+Gk2Sgvn6yFKHpFImKdjkKt51upwT4iUx9oXDhEbGUvScl4XY04wMHEjEj3Ft15BxZ8CR/MrZadwH7kl1lM+LBKYMUNStICSyl6eJQwRtQvQakLQr/NHymikXlLEnLWmhe1jliogKBDX7W/YU5VrNJk0OFti/WqdB6AmU2ewOiqVhTAa1n0qGrQ4UPSSSIlpZJ8J/P6xTSIkIJtQbYrrW8x7qXEQFGDS6+MoOIiCJ/LUK5WyrHY2gsCi/5vQewEimPPLn4IPd0mVe9CAnMKXl9YCbFz+/SezD9DFtd7XWql7Q551WVHyKIDnl6BKJp8lV35bUOa9ICRrxcf3DseC4gHRvXn6DTplUgWK5HfFFbWmQ3g0VGby4WtYVnKNhbwzia0NMGoV+My59hrDrtnI8OYi8SwFBkU2H0R6qUlS9GPOKmglhfbsiHoL8TP21DpU8LCts37x9b3QdirEWjAFjzPO97VfDE0Img0RkX03+EbKE8YSRI8fJ2cWNEATsERM3jyxhgMeGTSHhdC7NCsllxO8FxzZccx4GyEzikSwUrsfI5C2AsqDZDgKR9MUiMqb7H5M1EP8TyWJ8I7xIoyd55cvTQYUqh8Nj5I1Ax3hw3zo8IF9QqUtJ6Ic2yZzAmEgHNLbEpp2BsXK9lievggoAa2w2gBo3yEJDRwIqkl5fvrlqd6i/7n7Tby3JTCB2m3jgyGk1PfrJxspcWvZgC8ksEagJRYgwKM6ykgG3mvo9sSz+ZYBwsS2A8cDLfip7+BZ7uItkPcE3nT88ZD0ktGRLstqG/lENK/ttsicYCW0O+iInngDz5/YcLjwGnWBoUw8flwQReUK2ig3vwrfAyMINp2kP53vAq4Y+N0L88syMinek74/vnemsI6HgwzabZEUKCaA48tuGIdsGw/BEAk/83emyUf0nf/flmZ9SLxykD+rpsBPGHIGaAiu8sLJ0COY0Wj6BvdsVLPBAQPD7t+/6U5KnfeiCxOXUAiEi/yuPQaACUTMzVk/0O/i/QQCmTj1DOnAUI3NhTEqdgoqKZJmKCmSVi4+tSH8s2UDIEoAyucrIR05gMdNFVIW5cisrFTImJkHCKORhFOuhBniP4qDFGrlwBaXcSKBki5tpZgLbzN8ZIwwe++tNWzmA98D7Xt/FKupSFdGAXHUHd2ZZtWSBaQMFH12fon3wi4VWhzltGlO6b6jq4PB5jrbP3t2LiSoXTQ5i/Ut6e9SdGEFRsYRBFxEOMwHbr5weTpoxRyyI6A9+Ilm5HIqsiQOYdzKMrhJ+J5Iavp55vkL+mEoeokX1Qja7xvEpEHzfiRDGreGFph0JUu/HvKWwtnBwigo17C8x7gIzWH2+MADhDWH4cMzgOICYFoM3WsrkAKnOGSvhUlxVoH8TcHgPy8iQonoaoT95Cvy0u1DJZZ+jyu9t5StA4bPjTy8DdBCQoZ4+OIwCixKC3CytBwujxc128KT9+nXc140Zw/nM4BuekZ85HoXoDPCLccxr0nv98D/Xvv80wydmm7AAcL+yascF7/pvPR28rhlpULBH1JnMylFer8uLK00rCyoYnFw+lXo9lIxl2RpVYxRITKERPa6oge+G2NOLvVSSi2dKySFyYrgztMIE7bd21Oj2XuebN172FQAtmqyS+LkUV5N9qqfIots7kUV2FyKLXAJFArslM8IKT7+bO5c6UITdYbEiDZAJgsQeS7KSLLBHLrOyS6JZArJJu/Dk4aVHGF/aipskniLYr41LukwsmZMi2UmReomlXcf7jCJXPy1ThzBaBFLlw98YcADhHrQS9Cckqw5JoAcBIKnRCCTgBhswPrjVe8+TOAH9udESrY4+0G0ICIvXe3GFzLQtnjMtTwpl862tknhXHgxeO9S+ww3pQaHlwMv2HwyW1QkCSHOVwX16Cadt27D9whpfbUEv1dyuxIJkTB6Pkb9ua/Cp9ByN+V0ulRFWsCQ1BexgGq4UT8/qFRsBtySMUFRS23lN2wwhdCRNEkA7zEaS3BVdwr4qB7lJDm8LhaYAXU1x6T5rwqh/NfQL8vpGlflpIQUKYHqA2iTh6VB6mu2XJbzEIGQq4OOrg7Y+ykgUsYUstg0iEmPpCtJcG1PoiSxSbp1uaOzlLY/yUYChZc0/K/BBYlOAZccXgP+mcC54i/HsX4/EuRXZDXlISpsCC587+hZEKI4nLfzMUdGp/EIuVuO+UZHGpliCcPzBSEwiQn3xBC2RpDTPIgbx4sRAmHGXMZA7OmJLdrbmILrPvwZax6auPsHeKaC9t+71fMhECWjnOmDHZ3udUiNMB3VmQT70beshPhqkpS8R8vOel+lb5ycMHknnRy26mMtmTWAqQYZImGQcIJBdbQWPd75zfDvUg+pZIcrnUyHYJxogr8wU92stEypbHpi+AHbBTsmaDRjWw4mmTHkzX3uzuFFfiHNT5c6shVt5ivJCWttrCSFvHMdkhKWjkkIyMbYrb6QTzbqWJIxO6cH+f7sOGhsNkLJMym4/kyURKbwKOJ5LkzdAmm5Oqk2hzXViNoeOLjj4wqCebB3aqRo2mUhiBTc7H8nBXUfAQxs7RJzJaBA+VqBfLMMIKmLJ7sMkgIdM0L6bOH1RxgGbZcAmAFT5kcGBpV9QckVb/oXl4EoriAKTkXhmHAFL2CIOvPYRpAakJGECVyoAsQx8KchSkUZgjDHw1ClrkNgO8NEuUYyNBo6yFNf6pzDOGrJuzdeh/k4wfZYj5yKX0q7IJ4E73LOIJMPtlJwXYgcsgtCxbpDFlTtoYIJ/W60powNxw7XsNFoRp19wOjVgtjbBf3HXqjIpwDAo+pjcYSLq5MP9ZraIDwdXqN73KIrUhhOHg2ID4pf5JghhT1cgZ9EuzIr3wrmpSCj9xWGmhtTRL4LDzqOyVrk3K6p1SLYIEqbl6Cgs7b5QoV8iecIWcHtyM1cSmJUFXAxqKABfpNwPcV6SID2AKByEdpQcbKDCS8GKTSWoNNSSBgFrApdhgG+d4V2PvYZG4WQYiHY6/gzBX40DwLostk3a6B3ycBtHZVpDZQoZAyl2j78oV+67KawsdzkpEDwDcP6AVEBlMNCrHgbEMDAVLB4Bf3xiYj0/QMfJSABTFHp+MDraxbvrJxQsQxfbNlLvADKQxymKmkWhYGN0EnhigohlgSxg6QACMwPpfkiYHXB/Q1p2xmzHnndzTXIPIb7jJw6SQ0wbaSrvjSPdw1GzoGhiqJqCwbxZHYQJJBFmxHRquOlLcZgtJnNjrwKauMNkFQWSLUESDlQOdSFW6iliCQksg6gc/CraQYgZFvYRsLAho9ArVwqEYgSXmPOKWMPEkkfFEkPQqqGSp8KMSESvw/OCdycaGRWPKE4iohf4PQU/gm5APEA+BAA0t/RB5kUEy62tLosG+v1oRC6Qoz4htkSw4phOdNVVU5a8h2KY4YIZvSeQN0LEmiUyD/sVtZWIo8FmK+gR7HhR2Q7KfiHtMxArzk06KHbcRNxqELL82McvLRS0/T/yndtIbyt0HBD6ZIEHjWmQ9WmQV3tjWmUtUh2EQUW8BMcAhUTDhUZi+S+HlvBzHUpax+jDbvABUbmIh6+KcgMMZjgCjC8Du5K+DnwpGuXBMO/MhpotpFIomjyE7oFbP/kO6J9RzsurZSm4NInoZAU8LxkMy0WMKN78hfDMpRAva0Ln4WTc8zwO7s/5qcu4yldIV3ZuccPOzAfFjOp3leAS3eyG6BRKEgrWpxKsAoXUmbjWL2620f4tgQ4WCAQ7zN+5A34ndR8LHycTx09a1rPTpIYJuSxPjlmGXxVPr+S3JdN0kxEMf4VLaCLMQ7SjTMJz1Qwr8Um+LoM8QiqemLNFeEFy3K8k5HZXuDfhrgZmYK9S/i0K8msYlaD/isKcgKW0YaWU4QOtAU5FELNUkgxcEZnfAbFQhyNDyAB/KymRJJIUyY6TxHRz1JwpmUH4zZzIFMzOE/KcsqLsJuaELKWAwbHicwFeu8AiwQN8CSDEVdcBeSa9fBBYLdgkIRsAmEfAhcUCyQAPhhD068ALIrQB2SqBhCPVgDgsWYwsIAAH3t4AWT5JzQ/A1SBIH4VKxACLHIJEDL3FYA+IxkLQKwBxMaowXkKG1UgTgpYCL8wE4yAEPUiEaQcdxHR4UgjYqIcRE0uaIRSHgJRxFyHGApVhwhoQgQwBBV8CAVKngUDBCyGFcgOB1VJFCD2sqcA+l5o64fSDOCCcEKbJvgGWgaZxnD1B7iZ+K9fUKBOVjI0HUwKXcXUTjk4JDJIO2A5fhD+EW4XVKBgLF2agDDJoN17zqbd3k6+3fAC7ZrBwFO0AIB9WYWajm2z4ccSJcx/DZxW8ug+0skA0pnU59H8k/lJ6fMgHLQckRFEM4XMnvVWcAECfRl1wqbOnUoI0pQV2usigBH6h9XmXGo4tgBIKoAN6Z1GYhOgHE/f7UY1FHRCbGQXY8pC6US8ywSaoqM4FwGJN6XW5dA96uIBmB5QG78lxm7sVAEJkBFl9m77xcupeWylvUfhbA0S6Wv5w94+ySi+GIBsNbeBof4KBFp0VwRXfu0xSo9FWYdwRPMN+ngOHlLmA0l/cjgjlz6FgHk7L+W/hHDp5KshESKKTBjPwIQOnUITJxFArL2PubPHFDGIxd5vaypzi+YVK/pZ1HsCo2ORAR8jRf/3rIQjnFzeYzTB1YJcwq/7/rbL0CA4I82M4P/xATjHJLXf2cD4KZOkoFfL9N+1vTjeDeT90lkrG1TUhFT5X5u4hE13rI931gZNcsBHOF9jM9rAzrQCPkWP0ttGPHIj4Ynk8eOHaKR0H5TxSjjbbJkNZo4uq5AGgCECvD4ImQqjECoxXhwOxIKu4RH5cpTaLgfRUplqW5HNP5o5foBE6K4jxna5ky1AlqyxOgpO/lbVt9MROOPSFOk2HM8sclM9OjayyvQjSiFwuBFMWQuhhpLB4JQUU+EoK+/2ckwMOkfAnV1NsEnxZUHka2/18BGf+2i6RDPL558fDu3xksCn4sO2vOmp6ZSelhBvMvj/NmSC9RMvN0ULXWJ2Yg+h2ZWdOWt8686n4wv2ka70jIrN+wPVZgLTwjxGKaH9vqgXIW3Z2TmfkVcQw8g5OJpwKkTA2R1jJoixon+tzMmw0j33l1Dc//7oj8AQUd6BJxgBImxoJMtJMzcmV7oSmj7fgWsFgkQ1kjlh25EA2XpQSQ0LFsxQ4fXxjh4vCp33WFEZqljA+xAZiSvgAKikhFQxJ86klC4pvZOmnrtGT8SbB4HaBPmANrQCm3GxtEIC1MkiP55M6JSSSXOBHXoMoNREICsbKinFBasujdCuvJEKIAyC1HDUSg7nui3NQRPw5qyRTzhVwztcrL/50i12YdoezLABCjDZhkFX9gs2YacAh700yAIR73/T8XVColB8HZxPa0SsUqQ3r8siZ40tsHqKNemzopWS7l5F4GbG+qnVi+1qxMk+y+9nFyAPdPbeEEqqJBEq8I28hW91JdFqdCsoLOyEzWT5D2fre+nKVSRO55Co6XR2f+hSA4zApz+S23BUwXMwhk3CpCpk12uMm4Rojz6Y7oc+nUmlCqTCVKoeeJgOvVjtbNpU+o2a6TKBHAMHqsE0YKDHXM+s3WOQLwLuggoA2sQDhWAoNabmMkktHZbr0qAprxlAShHacoeNQ75UygRwN6SCv4YLZkesCJaAQgph1Y83VEixQNLGCKDmLSReOaEYzO0OglGBKQIhIsLjfRFUYCshACNyCbdHV61CxAyGuI6iMkGCP1xHXGVxqoQYvOriKTAGtSUQco5af5CXNzm3f5w6gzMwZfstWzqi4nLM0aQ0p4FFSPkTtu0/vKJxsBlwa0InG+wv7rDg4dPPK0dEvEt1rgRok2ORO7la4Crat6KRjq5ykWNlvSFUEJeaamcUQk5eCEY7EtxhYpbSCwDt/SZrtoIgQFtwgk3Tsu8gAjiqgkBKZ1Z9JgVH4Z7m2B5cSeFr5K6hy80vSCohuas+0ZHSUdHoxzlRCFfl5B/J8sR28KdVRCDton31hTBA/dhRkNBQrm1aVdhTV1gaOHTAH19oFPKXHuRtUuLRrpxS4/lkB8q1gN4XDl2PhW7vVAhH8yET46zHJhSTxXRyoyGdLS3bTvcylk/M5cs2Aq26J9bnwDmEfRKmpyPREMgArAxFIXdY/e0U05d+p1SqIBAfydp0dHgy7iuDHXTZ/qT7bak9q5fPO+8X5Fn145OkXCHcK0wvQeeLbopC3P7deKROe1UGOWz1hqPHxPhQa2O+oDhgu75cnlMAKSCtlfdX0mwLxiXkSKTnNlPjI1dyhsc0X5WRJWOgD/Mz5KvuhpaGVtsQGGqoix3QQk8aOy2wSnYKQfRoORYqOC4xBx8pEePUImCcRgO7FFQKFg9dkEBh34lh71BKbYYyWzNJ7MoPp2qwTIkBkQgDnTdjZ7FQYkFpdsNuDFEtKa8sSjQIWhuDCgA8+kPLtikwpsHUtFWLeqcvLL2hrz+EEx+6TuZqweEq6kIFw1UUb8JsF0sZAXX72e8NJQOizEa10TPORkrMCitFmKsemBkpjmta4CUV7K+HRPiDD2BU2ZwLdW4r81mg1lbjt1RoMJNOXl+xCu9NYzi0/Yc1+oIDLiIrZaC8qGAhfSwP8dzpd3WPiqsZBk5UmTGAjE7DMIY5qJs7YcLPhS8FyiORktBffStZDZ3I3eYQaFwRrPH4YzSq8U2bqpQXLkcIL0jsQF6HUQQrSF4EsnD2ae+SnhUPEpHzEC0nUr3tStd/CXlsbLZcU4DyItmHELcGdAEempcYQEIY0OdhXFJMtwT1/N80pSIA6bMP9riEzuKbu7Bj5tu+Qi7UWiFqbH4JAwH0p+Xw6/JA6tLrLhau7gSpxKJUG3uLu2LAIWyppjLIESoel65v0veMAtWu9fNH8LBEqEgUNAinHjA5hIsJXNqWhYgK8jXlTB2C+yrjOULsDCZFJ3q8sSqm2FIFO6gZJTAbQcloFu9s336YecIJvKHEqy4cYlDjqDEq2IESjx8lsrFIW8yVJLEe9AjW9STC5E26E8LFIyywbjoYVGJAwS4XueaBCwFwnCy5bvwFu+OQBcBChCsyxQevDwNoE36izD+LVQUi2bEQwL2x2LQAqzgfxIGHB1iHQ4OsQjnYnrVt43fCXKf8F8AxW6w0u20S1I6YlgVy1eI6d3uQRQ2i9snl+pgx+xy/cKAjGjlupLVQJIOILGf4wwNMgGjaAU2AqcHOz0wZKeA4kcaq0IkMjnr+5G4Nk2JFdjTEgitlllwCEkqZa3cIwhKIUCoYueQho8nKp5iouEDTEEyQ1NvyUc6VCB5LLxdvhLXGUEA5nrj2IKxAtOyU0Sxor1QZrQyZYVhNi+OSaT78qOC0KWuQl7fxRaSOwGikJMUUIDMeDEIOteLHbFn4UfsgYywoih/f5vkOjsWyUqEZjs9J7Z5cj/fX1x0eNGk8s+MlOyZmq+CFHWpKcxRMZoPSDwsVJOtI3OuVlhBLztg00o3/85W2K5XuZnrmA2r8lUC5q20+aUufajJLbfcDea0DGoRePNj8xOSZJl8FalepLogNoiMN3FiREe66/SSXOz4bNm2Fgj7eAhtjhCuPhBV1JDb/aao1SmN7iHgCDRLpqxgWo+lh+NEzXkMaC67EWQ8vrjv6iw8HwT/dxde2p1w8EkaYs7yovj4Kug==",
"slug": "reveal-js/lib/font/league-gothic/league-gothic.eot",
"type": "application/font-woff",
"title": "$:/plugins/tiddlywiki/reveal-js/files/lib/font/league-gothic/league-gothic.eot",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/lib/font/league-gothic/league-gothic.ttf": {
"text": "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4fofAslYWP03BeH88jExAw788jExAw65R0e4AAACABQAAAN1BdEAFQAcAJ8AAbAdL7AA1rEVEemwFjKwFRCxEAErtA8RABAEK7APELEKASuxCRHpsR4BK7A2GrrAoPcWABUrCgSwAC4OsAHABLEVGfkOsBPAsxQVExMrshQVEyCKIIojBg4REjkAtAABExQVLi4uLi4BsgETFC4uLrBAGgGxEBURErECHDk5sA8RswUEFxgkFzmwChKyBxkbOTk5sAkRsQgaOTkAMDEbATMTNzMXEzMTIwMHIycDIwMHIycDJzM3FzMnIxSmrFALCApQrKa9QQgNClZ7VgoMCUEEvD4/vY7bBGD7oAIXPz/96QRg/bdAQAJJ/bdAQAJJuUdHuAAAAAACAA4AAAKuB1IACwASADoAAbATL7AA1rELEumwCxCxBgErsQUS6bEUASuxCwARErAMObAGEbYBAwQNDxESJBc5sAUSsBA5ADAxGwERMxETIwMHIycDJzM3FzMnIw7i3eHZbwYEBm+BvT1AvI3bBeH8oP1/AoEDYP4fDg4B4blHR7gAAAACABn+bwJiBdEAGQAgAEsAsA0vsQgG6QGwIS+wANaxGQ3psBkQsRQBK7ETDemxIgErsRkAERK0AQoLGiAkFzmwFBGxGx05ObATErEeHzk5ALEIDRESsAs5MDEbARQHBgcOASciJxUWOwEyNzY3EyMDByMnAyczNxczJyMZvggSMhVFBAoCMhEZclNKEMbKUgQJBFKdvD1AvI3bBGD7fyIbQSYQBgQCuARkWYAEtP1QOTkCsLlHR7gAAwAQAAACsAcvAAsADwATAD4AAbAUL7AA1rELEumwCxCxBgErsQUS6bEVASuxCwARErEMDzk5sAYRtgEDBA0OEBMkFzmwBRKxERI5OQAwMRsBETMREyMDByMnAyczNSMFMzUjEOLd4dlvBgQGb3i+vgEgv78F4fyg/X8CgQNg/h8ODgHhhcnJyQAAAAACABQAAAJeB1IACQANACYAAbAOL7EAASu0ARQABwQrsAQysQ8BK7EBABESsgMKDDk5OQAwMTMhNSEBNSEVIQETMzcjFAJK/qABYP3oASn+pYifotfbBCvb2/voBay4AAACAAwAAAIEBdEACQANACYAAbAOL7EAASu0ARQACQQrsAQysQ8BK7EBABESsgMKDDk5OQAwMTMh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ArwADgJyABQCGgBSAxgACAIaADkETQA1BLoASgQAASUClQAxAq4AUgKFAEICrgBKApMAQgHbABQCvAAMArIAUgFyAFIBbP/TAoEAUgFyAFID/QBSArIAUgKRAD8CrgBSAq4ASgH3AFICdgAlAfUAFAKyAE4CWgAQA4kAFAJqABACegAZAhQADAKwAD0BZABSArAAOQUAAHECcAA1AnAANQE7AAABgwBKAnwAQgMxAAQC0AAZBAABEAZsADUBvABKBmwANQQAATkEAAGaANcAAAQAAaoChQApAv0AFAL9ABQC/QAUAv0AFAL9ABQC/QAUBEsAEALEAEQCdABSAnQAUgJ0AFICdABSAZH/+gGRAFIBcv++AXT/ywL5ABQDKABSAtQARALUAEQC1ABEAtQARALUAEQC1AA7Au0AUALtAFAC7QBQAu0AUALAABAC1ABSAt0AQgKpADECqQAxAqkAMQKpADECqQAxAqkAMQPdADEChQBCApMAQgKTAEICkwBCApMAQgFy/98BcgBSAXL/vgF0/8sCoQBMArIAUgKRAD8CkQA/ApEAPwKRAD8CkQA/ApEAPwKyAE4CsgBOArIATgKyAE4CegAZAq4AUgJ6ABkC/QAUAqkAMQL9ABQCqQAxAv0AFAKpADECxABEAoUAQgLEAEQChQBCAsQARAKFAEICxABEAoUAQgL5AFID4wBKAvn/2QKuAEoCdABSApMAQgJ0AFICkwBCAnQAUgKTAEICdABSApMAQgJ0AEICkwBCAuEAQQK8AAwC4QBBArwADALhAEECvAAMAuEAQQK8AAwDCgBSArIAUgMKAAICsgAEAYH//AFy//YBgf/8AXL/9gGB/+EBcv/bAYH/5wFyABcBgQBSAXIAUgMoAFIC3wBSAaf/2wFs/74DAABSAoEAUgKBAFICXABSAXIAGwJcAFIBcgBSAlwAUgKnAFICXABSAkkAUgJ0ACkB1AAfAygAUgKyAFIDKABSArIAUgMoAFICsgBSArIABAMoAFICsgBSAtQARAKRAD8C1ABEApEAPwLUADUCkQASA9cARAPjAD8C4wBSAfcAUgLjAFIB9wBSAuMAUgH3AAQCvgAlAnYAJQK+ACUCdgAlAr4AJQJ2ACUCvgAlAnYAJQKHAAQDKwAUAocABAH1ABQC7QBQArIATgLtAFACsgBOAu0AUAKyAE4C7QBQArIATgLtAEICsgAjAu0AUAKyAE4EDAAZA4kAFAK8AA4CegAZAsAAEAJyABQCFAAMAnIAFAIUAAwCcgAUAhQADAHbACUChwAEAfUAFAP9AQQD/QEEBAABHwP9AZgD/QFmBAABXAQAATkEAADXA88AAAeeAAADzwAAB54AAAKKAAAB5wAAAUUAAAFFAAAA8wAAAYYAAABsAAABvABKAbwASgG8AEoDJgBKA8wASgE1ADEBNQAtATUALQJwADUCcAA1AnAANQJwADUClwBSA8QANQGGAAAB5wAAAy0ANQOpAEoDCABKBFwAAAMEABQAFAAAAAAAAAAAAAAAAAAgAFYBWgHgAqIDQANgA44DvAPaA/IEEgQuBEgEgATkBQoFWAXyBiIGjAcKBygHvAg6CFgIfAiSCKYIvAkaCb4J8gpaCsgLEAs4C1gL0gvoC/4MJAxSDGwMyAziDUYNgA36DkwOxg7kDyYPUg+iEDwQbBCUELYQ8BEUESgRPhFWEeASPhKaEvoTZhOkFHoUsBTOFQwVYBV2FcYV/BZeFr4XHBdOF8YYChhCGHAY4hlcGaYZzho6GlIavBsIGzQbXhteG3wbzByOHPIdEh3cHeoerB7KHuIe/B8eH3ofuh/4ID4gtCD+IXYhziJOIn4iriLiIxojLiNAI1gjcCPGJDYkpiUWJY4mLiaoJ2wnvigOKGQovij4KTIpmiowKsYrYiwkLMItgC5ILrgvMi+sMCwwrjDCMNQw7DEEMYgx+jJkMtAzQDPaNEw1LDVsNao17DYwNog25jdGN4g4Hjh+OTI5pDpmOuI7TDvOPEA8vD0mPag+Gj5yPt4/Tj/QQABAekDIQWJBkkIMQoBDOENaQ9pEYkVCReRG2kdcSDZIvkmgScBKHkp8SuhLQEuYS7xL4EwYTFBMrE0ITSZNPE1sTbZN6E46TnJO0E8kT0pPXk+IT65P2E/uUBRQJlBCUGpQilDGUOpRKlFQUZJR1FJCUqhTGlOGVBhUolUcVY5V8FacVvhXNleSV9RYNlh6WP5ZgloMWphbIluqXDZcxFzyXUBdiF3sXnxe8F9CX4Jf+GBaYNphWGGyYfhihGMSY3Jj9mQ4ZJRk2mUKZTplamWaZc5l8GYcZkpmnma+ZuBnEmcuZ3Rnrmf8aBxoHGgcaBxoHGgcaBxoHGgcaBxoHGgcaCpoOGhGaGJoemicaMJo4mkOaThpYmmOabhp4GngaeBqamq6atZq/mtEa4gAAQAAAVkAbQAFAAAAAAACAAEAAgAWAAABAAGXAAAAAAAAAA8AugADAAEECQAAAFAAAAADAAEECQABABoAUAADAAEECQACAA4AagADAAEECQADAD4AeAADAAEECQAEACoAtgADAAEECQAFAHgA4AADAAEECQAGACgBWAADAAEECQAJADYBgAADAAEECQAMAEQBtgADAAEECQASACoB+gADAAEECQDIABYCJAADAAEECQDJADACOgADAAEECQDKAAACagADAAEECQDLAAoCagADAAEECdkDABoCdAAyADAAMAA5ACAALQAgADIAMAAxADEALAAgAFQAaABlACAATABlAGEAZwB1AGUAIABvAGYAIABNAG8AdgBlAGEAYgBsAGUAIABUAHkAcABlAEwAZQBhAGcAdQBlACAARwBvAHQAaABpAGMAUgBlAGcAdQBsAGEAcgAxAC4ANQA2ADAAOwBVAEsAVwBOADsATABlAGEAZwB1AGUARwBvAHQAaABpAGMALQBSAGUAZwB1AGwAYQByAEwAZQBhAGcAdQBlACAARwBvAHQAaABpAGMAIABSAGUAZwB1AGwAYQByAFYAZQByAHMAaQBvAG4AIAAxAC4ANQA2ADAAOwBQAFMAIAAwADAAMQAuADUANgAwADsAaABvAHQAYwBvAG4AdgAgADEALgAwAC4ANQA2ADsAbQBhAGsAZQBvAHQAZgAuAGwAaQBiADIALgAwAC4AMgAxADMAMgA1AEwAZQBhAGcAdQBlAEcAbwB0AGgAaQBjAC0AUgBlAGcAdQBsAGEAcgBUAGgAZQAgAEwAZQBhAGcAdQBlACAAbwBmACAATQBvAHYAZQBhAGIAbABlACAAVAB5AHAAZQBoAHQAdABwADoALwAvAHQAaABlAGwAZQBhAGcAdQBlAG8AZgBtAG8AdgBlAGEAYgBsAGUAdAB5AHAAZQAuAGMAbwBtAEwAZQBhAGcAdQBlACAARwBvAHQAaABpAGMAIABSAGUAZwB1AGwAYQByAFcAZQBiAGYAbwBuAHQAIAAxAC4AMABUAHUAZQAgAEoAYQBuACAAIAA2ACAAMAA2ADoAMQA5ADoANQA5ACAAMgAwADEANQBvAHIAaQBvAG4ARgBvAG4AdAAgAFMAcQB1AGkAcgByAGUAbAACAAAAAAAA/2cAZgAAAAAAAAAAAAAAAAAAAAAAAAAAAVkAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBAAEEAQgBDAEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAF8AYABhAQIBAwEEAKMAhACFAJYAjgCLAQUAigDaAI0AwwDeAKIArQDJAMcArgBiAGMAkABkAMsAZQDIAMoAzwDMAM0AzgDpAGYA0wDQANEArwBnAJEA1gDUANUAaADrAO0AiQBqAGkAawBtAGwAbgCgAG8AcQBwAHIAcwB1AHQAdgB3AOoAeAB6AHkAewB9AHwAoQB/AH4AgACBAOwA7gC6AQYBBwEIAQkBCgELAP0A/gEMAQ0BDgEPAP8BAAEQAREBEgEBARMBFAEVARYBFwEYARkBGgEbARwBHQEeAPgA+QEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAPoA1wEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQDiAOMBPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwAsACxAU0BTgFPAVABUQFSAVMBVAFVAVYA+wD8AOQA5QFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoAuwFrAWwBbQFuAOYA5wFvAXABcQDYAOEA2wDcAN0A4ADZAN8BcgFzAXQBdQF2AXcBeAF5AXoBewF8AX0BfgF/ALIAswC2ALcAxAC0ALUAxQGAAIcAqwGBAYIBgwCMAO8BhADAAMEHdW5pMDA5Mwd1bmkwMDk0B3VuaTAwQTAHdW5pMDBBRAdBbWFjcm9uB2FtYWNyb24GQWJyZXZlBmFicmV2ZQdBb2dvbmVrB2FvZ29uZWsLQ2NpcmN1bWZsZXgLY2NpcmN1bWZsZXgKQ2RvdGFjY2VudApjZG90YWNjZW50BkRjYXJvbgZkY2Fyb24GRGNyb2F0B0VtYWNyb24HZW1hY3JvbgZFYnJldmUGZWJyZXZlCkVkb3RhY2NlbnQKZWRvdGFjY2VudAdFb2dvbmVrB2VvZ29uZWsGRWNhcm9uBmVjYXJvbgtHY2lyY3VtZmxleAtnY2lyY3VtZmxleApHZG90YWNjZW50Cmdkb3RhY2NlbnQMR2NvbW1hYWNjZW50DGdjb21tYWFjY2VudAtIY2lyY3VtZmxleAtoY2lyY3VtZmxleARIYmFyBGhiYXIGSXRpbGRlBml0aWxkZQdJbWFjcm9uB2ltYWNyb24GSWJyZXZlBmlicmV2ZQdJb2dvbmVrB2lvZ29uZWsCSUoCaWoLSmNpcmN1bWZsZXgLamNpcmN1bWZsZXgMS2NvbW1hYWNjZW50DGtjb21tYWFjY2VudAxrZ3JlZW5sYW5kaWMGTGFjdXRlBmxhY3V0ZQxMY29tbWFhY2NlbnQMbGNvbW1hYWNjZW50BkxjYXJvbgZsY2Fyb24ETGRvdARsZG90Bk5hY3V0ZQZuYWN1dGUMTmNvbW1hYWNjZW50DG5jb21tYWFjY2VudAZOY2Fyb24GbmNhcm9uC25hcG9zdHJvcGhlA0VuZwNlbmcHT21hY3JvbgdvbWFjcm9uBk9icmV2ZQZvYnJldmUNT2h1bmdhcnVtbGF1dA1vaHVuZ2FydW1sYXV0BlJhY3V0ZQZyYWN1dGUMUmNvbW1hYWNjZW50DHJjb21tYWFjY2VudAZSY2Fyb24GcmNhcm9uBlNhY3V0ZQZzYWN1dGULU2NpcmN1bWZsZXgLc2NpcmN1bWZsZXgGVGNhcm9uBnRjYXJvbgRUYmFyBHRiYXIGVXRpbGRlBnV0aWxkZQdVbWFjcm9uB3VtYWNyb24GVWJyZXZlBnVicmV2ZQVVcmluZwV1cmluZw1VaHVuZ2FydW1sYXV0DXVodW5nYXJ1bWxhdXQHVW9nb25lawd1b2dvbmVrC1djaXJjdW1mbGV4C3djaXJjdW1mbGV4C1ljaXJjdW1mbGV4C3ljaXJjdW1mbGV4BlphY3V0ZQZ6YWN1dGUKWmRvdGFjY2VudAp6ZG90YWNjZW50BWxvbmdzB3VuaTAyMUEHdW5pMDIxQgd1bmkyMDAwB3VuaTIwMDEHdW5pMjAwMgd1bmkyMDAzB3VuaTIwMDQHdW5pMjAwNQd1bmkyMDA2B3VuaTIwMDcHdW5pMjAwOAd1bmkyMDA5B3VuaTIwMEEHdW5pMjAxMAd1bmkyMDExCmZpZ3VyZWRhc2gHdW5pMjAxRgd1bmkyMDJGB3VuaTIwNUYERXVybwd1bmkyNUZDuAH/hbABjQBLsAhQWLEBAY5ZsUYGK1ghsBBZS7AUUlghsIBZHbAGK1xYALADIEWwAytEsAQgRbIDLgIrsAMrRLAFIEWyBDICK7ADK0SwBiBFsgXzAiuwAytEsAcgRbIGdgIrsAMrRLAIIEWyBz4CK7ADK0SwCSBFsggyAiuwAytEsAogRbIJtQIrsAMrRLALIEWyCnoCK7ADK0SwDCBFsgsuAiuwAytEAbANIEWwAytEsA4gRbINfQIrsQNGditEsA8gRbIOoQIrsQNGditEsBAgRbIPvAIrsQNGditEsBEgRbIQYAIrsQNGditEsBIgRbIRVQIrsQNGditEsBMgRbISQQIrsQNGditEsBQgRbITLQIrsQNGditEWbAUKwAAAAFUq8TfAAA=",
"slug": "reveal-js/lib/font/league-gothic/league-gothic.ttf",
"type": "application/font-woff",
"title": "$:/plugins/tiddlywiki/reveal-js/files/lib/font/league-gothic/league-gothic.ttf",
"tags": "$:/tags/Static/Attachment/Raw"
},
"$:/plugins/tiddlywiki/reveal-js/files/lib/font/league-gothic/league-gothic.woff": {
"text": "d09GRgABAAAAAHgsABMAAAAA+wAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABqAAAABwAAAAcbdK85UdERUYAAAHEAAAAHgAAAB4AJwFfR1BPUwAAAeQAAAQ5AAAH1N1N0rRHU1VCAAAGIAAAACwAAAAwuP+4/k9TLzIAAAZMAAAATQAAAGB3TIzrY21hcAAABpwAAAIXAAADHvgkFsNjdnQgAAAItAAAAEAAAABAEG4O72ZwZ20AAAj0AAABsQAAAmVTtC+nZ2FzcAAACqgAAAAIAAAACAAAABBnbHlmAAAKsAAAYWQAANcQlX8InWhlYWQAAGwUAAAAMgAAADYGy8S1aGhlYQAAbEgAAAAfAAAAJA2WBodobXR4AABsaAAAArAAAAVikzBO7mxvY2EAAG8YAAACrQAAArQYE02KbWF4cAAAccgAAAAgAAAAIAJ2AghuYW1lAABx6AAAAWsAAANIKSN1zXBvc3QAAHNUAAAEHgAAB0BEqgfccHJlcAAAd3QAAACwAAABHi/yukN3ZWJmAAB4JAAAAAYAAAAGxOBUqwAAAAEAAAAA0JxLEQAAAADMZPx0AAAAANDRdV8AAQAAAAwAAAAWAAAAAgABAAEBWAABAAQAAAACAAAAAHjalZXba1xVFId/+5xJJjPTpkltDba+qDFEGVAiWJVSfZhOJ01I26S5tEaKEZ+UPuTSQMFLwUueArmSm1pypdUm0GfxQYQI0qeC+RPOS5AhlOFQgsfvLNMYLymYxXf2uey91vrttfZETlJaL+uUvFy++aIqP3y3/6qOKcF7RZHi73vv3Qfv915VRXxnJOQxekonXpTzh23uGU3pay3qrr7Xj/pZv7qsa3DdrsfNeae8gteCdXnXvYLLej9Bwd4VvN/9br/HH3JZVu0aa7Os3THW/2Utjyyes+PXzB/60+J3fjdZHos27LotX0+i97iq9LTlfoSnmijg69Eo5Hoius+ck9GmhqNNV8d4VDmueShAK4zAKIzBOEzAJEzBNMzALMzBAizCEizDCl59RqdO4qVVSwYnya6XsQ/6YQCuwSAMRxtksWGZbaqSPALyCMgjIF5AvIB4AfEC4gXEC4gXEC8gXkC8gHiB6lWLshPozkU/4GUdL+s6H/2iC9DKfRtjO1yKSroMbxO1m7GXdX3QDwNwDQZhBD+jMAbjMAGTMIWvaZiBWZiDefwuMC7CEizDCtzB/1pUIsN1atHIU2e0ZXvzYPe5RLflqFwj70YYR2EMxmECJuGwDrFXeeYWoBU62N0pxmmYgVmYgwVYhCVYhhWLXnLVUejO4qPyb17+hwfVkGWR1SGrQ1aH5FAi4yIZF8m4SMZFMi6ScRHPIZ5DPId4DvEc4jnEc4jnEM8hnkM8h+RWsj35TSnbiXh33tGBfXfD2a45zmEV3V7DaT5Onz2vF5TVS2rQK/RBTqeVV0GNOqsmNatF53ReF9SqNrWrQ53q0hW6so+OHKAbB/WxPtFn+lxf6EsNaUSjGtO4JjTJaZ/WjGY1p6849/Na4OwvaVkruqXb+lbfadX5rlqetxn/Prh6t0XnV/Kbcj+6Fz2grx/3l/jv1yiMr2G0bVbab4bdbe/v/t/fHq1jl//55d7u3e1odc/TTi67z+GeNeFOng+5Pnyc0GjLvj9F5z/Dea2nglmMXyOsnIrlOAmnsTIql2dWAfOoXhNvmjGfGp7jGtexjEq28rUNK6OWXUrqki7TQd1YitpeYeZ1fUSUuLK+PtUN9noYK6e6k8SaoqKe1dTXN7rJ13msjPqu8P4WdU3qDpbSKlamNSxFpX15rs7V4cej59LYQfqvlhmxnpRexRJ6XW8QO9bmmba0qcrQtWfo7VhbxlSlTFXKVCVNVcZUJXURO0C3tnPfgZWbQt8U+qYwpR69R/Re+rfMdKZMZ4Xp9Exn2nRmTGfKdFaYzqTpzJhC37T5pi3jqlyVEq6aji43nZ4ruEYddE2umWuLayFi/J8l1qw9lfRMrY/WPPpjhUk7exXoayOPLrI/ZNkftuyfsLyPUKUbnOE442ct4+fI+CY7O09+DdRhTa9ZZm9aNm/9AU6aT9UAAAB42mNgZGBg4GLQYdBjYHJx8wlh4MtJLMljkGBgAYoz/P8PJBAsIAAAnsoHa3jaY2BmWsM4gYGVgYXVmOUsAwPDLAjNdJYhjWkBkA+UggN2BiQQ6h3ux+DAoPCbifXh34dAyXlMGgoMDJNBciwJrEARBgUGJgCTQQ4vAAAAeNqdktlLlkEUh5/zWla2mX2VqeX4lVaWuXxu7Yvlblqami0m2Cbt+25h+wLt+0abLZYVQdJFEUVddhdCRL70JwQhFE6Hz+gig6CBmXPOzJzDzHN+QADtMwLRFfFoJP64E61qx2LUC2Mnp7jBLe7SyFOa+MA3qZJaJ9x553wyQcZjwkyk8ZoYE28qTUOU1xsS/eO7Y63WMJzkmube4YHmPuMlzbRKtRPmvHWaDSbYhJqIDrlirf1i39s39rV9ZV/Y57bJPrGP7SP70Hraatoq3HTX5ya48W6cG+t6W7621Lckfc74WBFY2v6X/xyBTpCfBB2qCM4vz/lHjfbMACXXmUC60JVuBNGdHvSkF70Jpg8h9MVDP/ozgFAGKuNwpT6IwUQqsSi8DGEo0cQwjOGMIJaRjCKO0cSTQCJJ+EgmhVTSSGeMdmoc45nARCYxmSlMJYNpTCeTLLLJIZc88ilgBoUUMZNZFFPCbEopo5w5VDCXecxnAZUspErfv5FNbGEbdRzgKCc4rn08rTo4wzkucJ6LXOIKl7mq3b3OTb8+6rnNPVXJfRr8DBazRHEUqneM5dRICStZptFmDv6mtfQvBM+qWtaw6A+sRVSzlg3sF0cCJFOyJE/yJVty/MeNEqN3iv03y6RczSrJlQK169nOOnawlVp2sVvVvJd9ur+HwxzhEK4kSCorJEl8ksxqSZMUSfwJ/LKJfgAAAARgBeEAwwDhALUAugC/AMkA0QDXANsArADLANUAywDPAMAA2QDdAOUAnwCbAL0AtwChAKQAkgDTAJ0AewBNeNpdUbtOW0EQ3Q0PA4HE2CA52hSzmZDGe6EFCcTVjWJkO4XlCGk3cpGLcQEfQIFEDdqvGaChpEibBiEXSHxCPiESM2uIojQ7O7NzzpkzS8qRqnfpa89T5ySQwt0GzTb9Tki1swD3pOvrjYy0gwdabGb0ynX7/gsGm9GUO2oA5T1vKQ8ZTTuBWrSn/tH8Cob7/B/zOxi0NNP01DoJ6SEE5ptxS4PvGc26yw/6gtXhYjAwpJim4i4/plL+tzTnasuwtZHRvIMzEfnJNEBTa20Emv7UIdXzcRRLkMumsTaYmLL+JBPBhcl0VVO1zPjawV2ys+hggyrNgQfYw1Z5DB4ODyYU0rckyiwNEfZiq8QIEZMcCjnl3Mn+pED5SBLGvElKO+OGtQbGkdfAoDZPs/88m01tbx3C+FkcwXe/GUs6+MiG2hgRYjtiKYAJREJGVfmGGs+9LAbkUvvPQJSA5fGPf50ItO7YRDyXtXUOMVYIen7b3PLLirtWuc6LQndvqmqo0inN+17OvscDnh4Lw0FjwZvP+/5Kgfo8LK40aA4EQ3o3ev+iteqIq7wXPrIn07+xWgAAAAABAAH//wAPeNrcvQt8VOWZOHxuc7/knLlmMpmZTCaTSTJJJpnJZJiEXAhIQriIgMgiIlIEQa1addVSlvqnrkWXqrXtKrUWqXXd/lh7ziQi8lekttbb2qxft2RZNrt/ll42u93Wdd2uAhm+53nfc2YmIYGg7Pf7vk9MMtdz3ve5vc/9YThmkGHYrO4kwzMGxsOwsjEhs8eGOYkRhbhiYuNMS6ufTTn5VDoymLk/c2p0VHfyzIvC4tOhUwzDcMwy/jAXUb/fy+TglbgspIZZgTEKcVmXLLliBbzAiYqOjQ/ryTO8vqLjJIfCC9mseif8tyz0ZCgW3BvSnZw4zsXwh9yrlWGEfXAvPxNi/xzWWpWQuWMKL43LvKi44VoueOgSFT08NMBDg6hI8FCUxpUwG5fbKw733PTfyxl33CzIXLPsasbl8Pwn+B03/0nhXVnfLIvNsl5UDPCmCFfBN7f89wC8aYHvDLGc2xmHmw4JvAse6MUhnV6CBwZxyGgQnfEhC/ltJb/L8Dd+xkE+A99ykm/BdTx4nSEf+V2hXbMS3x0KaFcO4reGQvg7B/eteqjqoYjeLjmyckVW9mVlTzYHq8DnlVk5kJWd2RwsBp+HsnIwKzuyOVgTPrdkZWtWLssyveUsxws6vcFosZbBW06X2+OrqAwEQ80z/Mf2iqygw487nDN8VO6tYAGFzhSfcobhJ5WJkJ8IH4afiCHFR8LwRuubc9/oZHXw67WKI9Gj/h91vJHNn82+kX2j4ifRn7IPR1khyh7MD9KfH7Pc6+yz+XX483o+z3L5PMMy0XP13CP6dUwns5aRKxLDNQJjF+KsPDch1x9TPLZxmak6JimdQAIeUUkB6gNJxQIvB5NKFxBEyiM5ek2CwaGvrokmMjVegI0kS1lGqakAYqyOZrOwEY/X43Wn0u2Z9nRbrDbWzMKv2nRbpj3V7vFm4HEsHXHrDXq3y+uh/9wugz5SDW9E+Y7eHdt3zks7alaaErZl0Q63K97YYDhqb+3+/PY7M02u4DVtSxtsHW5va084yLOb//S6LZ6x4/Y71j4xr3vbPbYF0ubeGxZn21Psgg7fHy+42rJjl2/b6h19nZt2Lv1ct2fT4NJkR0frckbHZM59wA/rPmQcwL01TIZZzOxlcvUMEx8esCIP5+zAkcOV5PFwT6reboM/9FlEIM8i5BkrL0nIzLFhL+F82Ssiywwb6TOjqETh2Rz6bI6oLIBnTVRGLAWAhr2SY8guVEYQlEZJdmWVOVHJAbQpL5CGUvU9A/AGEgeAKpXMtGckhGekGoDnTLERVqoFqCYBgJIrUs1O8yH4QDenfoLCOOOMb5wbnMfzDnd3e3dwwZbdXGTXxL9xgtUr6uyRBvYdR/OGrkAvz0vwgZ7g/O2cIOjtljKdXbA6RIPIP9JSt8Y/5zr2xZbauhZ/55rTr4C4eYF90SwGjO6K/OLMxMJk7eqKzHXscBI/0XFtfgk7bBFNZhO+v8QmBiwukEs80wo4aAIc1DPtTB9zM5MTAP5Km2E8FwLgK1nrOCvPR+gqDfZxuaEgqxCMSgMjOXI80lxWdksHBZ0v1NI3FwHpcuQsYiW8zihtAtClzgIfyUovWhlftLkHPkEBWpUhxJdKI0kCtWZiegN5EKtF4BlcXjvvAQDDx+wcgM5JQG1wwYdqW1dfwwpfrA0O1jrNRr+ztskn6eQKd8/V69tvuKL7r7Zmbua31SXm+E+YzWXBebeWB5orGvwOcU5YrOJvrDJVsJ1f+dymh+vdGbvx33iXtf7au5YtCj/Red3RL2158cizbRtz//x3XVfdffe9X65b03TvD4PBirjgX+KNL7/+O1c23wawY5ksf5gVyflRTU8P9ehgZaHk3MBDQz0fsqG9QXoukO/35Uc5oz7NSIwTTgQHgbIJQOskXwD4OJBXOakt40DAcH1Nq763fyB7f/2VD+2/qu8x7oGfPps/nF+15UG2ie05+jSbeXPVzifzPyTXrs+Psh+UXtt+TNEVrh1i2zMOqS3G8QaP1wF0ydXvv7LvG02rniXXX/mLVTv2smvYnp/+BZtlzas+f3/+jfzPjjyd/wm59iD/G24d7NvOME6vwZvxZmKZmCET8cYGD9y5a8myXXceiD/r3Ot8VjhV/dDyJ55Y/lD1NxbK8kLyXTbBnxAeYSzw3bCUksLpsBSRwoPsFw6wd+b3HMh/jdudf45de4Bdm38OPt+U/wMA9RSjZ4KMzCeG9QJjQggbEgoDFCjYxxUj2VInC4I7HWkaGNh8xyh8yXyKrpV9k72T2w04gu8zCTgyxxE9+OVh1oWyV8WPE1YyyCLY3nwdvpeGL1vhvjwTANwiT/BC4ZsKC7fVqbdNR9Kjo6fwXsZzt3JvE3pYyRAaAJnESkwNyB0WDmu4I0ee4VfxRJ879tsMPdGZZjzUGVFh3Z+Qg939CTfEwElXcjp5QdoYn+d8+x/X38UQnWLBuQ+4x4B3fUyc6WByelxlnXk850TODZlhuY2Epiqc43KFqNTAwq3OcaUJ/pLDwqknmouT8iCKLSK4alXm0xucUltBuFHRtYAPB+f03HpzT1dlmOfDgblX3LjlikwozI8ZpZaAVGm0t/nFIJu+Yf78eCrV3Dv/Bv6e6+fPb2pra1g4//qzu/l7qt1zpEjn2d01zowYYQiOfPBrN8DNxIQRR8MmK+NHHJspmgQXYwWgWSiaUkA0EVyc7/GxB6Sqq7YKT53ZpDtZW7fahdfKAGAeAZhUwaOcBQHhMQIgwglZPCYzSUUCWEiiUoFqFjxkk0o1PKwApUOx8AQcKSAE4A48OBEMATaV1qCgJ1DJcGvy++9fc3/X4L7n+jv+0S41NDqs/NzUkjU3nDj+Htv69gvrbr3nhr/aunV5a6a7Yfm9Q3/+9R98A9fWBPi6D9bWwTzM5GoQWxX8eC6Di9Tx48NlYk3GFlfK9LDezoRcRdYbcuAi5ZComPH0h2cpUW5EFcEN8tidUBqBFOfCW6Eq2EKZCGLWLA3pKmpQNVBSbjjJEiCERcB3LlTViJK6TIKXZJ1DYVJEWUip2wuwLoOdNbhTqA7oCcJRa4i4CsQB2kRtLNPNarBpOm43N7TYjHbbwBXOefFuzmhvcftNzuPxBQf7W65pCAtc+yKuvS028MNcX0xIfCObmhdbe19bZVVId4gvr/9CbDja6w127znyuWcqWm7fsMTr+uZIB9d+8JkNy7+x7wakcaANDvVmM1MG1MHKIqUJnYsxAE2giqxjEHd2SsooUkDdlyIgbTMpyceufmfLlrH8q6/cb7WxA/lD7MDr/OjZena0aeIslQ+Ak4fh+nWgj9GzL2IYl/0JxYZkU4/8I7uTSgz4RgKdzJuUY6ISgtsa4ZUGhHsMbu8HGwCUB8XpwhPPH4GXPAy8ZEPVrKg7pCUEXC3QEJF7FPBF5upiB+N9Q8oV8WjPY+We6gS7ZmL8sC9QVV0jlkVry+zswb++4cnH1uxjl1931W7eZKlmsyfO/kswVt/Vmpdvb4431d/diTDrgz3tAjqrZlqYbequmrUT3QWUZosJIaA0Gx7urURERIAXypJyRFTiIJt8SdyeXJFUkrDDCAAYFfK4pNjIPh2gmzOKDTYOGrnskhRfRfa8XVYbqPBAYkohwVQRZaibpTtG4uqLD/zVCwPxaPfjiR67td7n15vH6hfl9y+qG+PCVaFoNBSuZtO3Xrl795W3sqk7l+yMstZramPlgdan1j+8/KGHlu05u4V9y1PX6sx3O1tbCD6NAIA04FNPLEIDtbJchNGNqpzHcyJsZJec/NXYxM91+tOndcIY0YXSJXDrQcgRidpsHM95EXJpgFxXTO8FyHWhcO0lxOFPKjXAlTUiUoOcBWUd+NKRVOahlEXS1IUAZg1SrtbbitxncSj6MqSSLiScUJkGOVSGgMO6WGCxbhb+aOLHBboP6/ZwmfZkQU3n2lWJRJ+mbY7OxayweK7D2jknmY4OvHBgoLYtOafzBG813WU1m60dzWUCb7NG41aLxRpvNLF99b3ruq+8sufazmb5mu+kk19fvnPTkm98Y9nGncu/nkx/55qfs9y8vr6BL39u3tw27uxvG5tSvetu6c2geGWyAKftAKcwk2BuUenLD/RlRSjVApRcTYIVoORC+mohUCpLKlVAUdVJuUpUvACo+iTKX6UVoFSFUOKtABsvqt+ywaEIFoSQyw9vVIXhjSYJ9HFNZaQEhuQkUYqTirIKTizKUnbQvmuz9f3sxv76+GD++UEks5Yem73eV6E3/+M/1oSqq7nqqlANu+rhZQ/D//yaW1Z89asrbsmf+AIQWv5XVzUSQmMfZF90tiRc+Ss8sRaG+hzCwgbiM6ggPgeUR7KQRJ1A1iVVvwOqBSiIBkfhv1Pc3lMIt0FQS/C7epBm+F0L/a4hiWqMbEwq1lJNhny9vx+0mVGqz5CrEJnFvMAf1wlwHcbJpk1smh3kH5lYyB0+ewcoT9E32U3spjfzUaIjDLJj/HHBStbLoI6D/+DjZ+/AH3bswOiBqdfMwAXdJpZ8iDs8sfAF9sQ+9sSb+afyT1G9A2XyOt1vwWarw1M2TA4wAxWXcMpGkygqFVNtMolHrckSVwI2KiwlsNhlHZHUXpWEyZEKqEyhuICzBYwlYrOClHQCBHw5h68+Uee0CqbG3sqmIzZ30lihC/gqmhY8+SfXLn5ydFT47ar2mkw06G/o37p0++PnYDOp7JpVtiZjMrEytnHwNp7fsur0yCm6dpCNfAJoN8V0M99gcjqkXbN1PNeMm3Bax4eru3TNYFlWEx1kuDJDnlWqGkkPEZZ2OAjsolIF51AbVe/aRKUTMOlNKnWw817YaRscxy+anZW66ma0hzolxVgLhFznkA1A2dVmgIMxK3eBWIjVgVhQKjPwSjmhcaqMxciRkJYKhzNRy5DmyWHsBXhRRQ2EAyu1Uakaqe6rid3402Pbnkjd/bm2WKz9hk3tUb27tmXpgscqvXGn69ma2i0/fXNTrIb9RcJb0ZpgEw1bEzseWd3T2dDG39ea6O5uSjVZ3dXrl+T9B8zu6BzeF7+9ZefOltsaJ77Jvpmu9OWzaYQjKFvcOMhZA2MD7ZOV7QQyLGoroiLgsQx6SRlq6CzY13qD0UbN6E4WvWR82M9mUl6n6+/qflE/eir/YWev3qrvZVP593Qnz85lT8RihH55ZgXc5xDcx8H4gd7+iMmxiDGnZTwnIcYClvHhShcrgbSpxAM7mpDLj8nhpKJzjSs2WEItLMFWDrA1AdidsBaZwyMLiFCuxBflgCTbsqj1ac4S9W+cdUqqhOW1BytY8ZWV/eUtVy0NBTZfP/L6WF9VH/w/L9zXFzb9ya0Hv7Dw4eb+vu7b/+76NadPsyPeln3PtHi5vexjnqY/faDJg3ym6ewJZol6vjhBY6/HvVSaNXGpeEFWekWEn1wFYkFEyUlkZZkXRKK+HqVjpRNUOlu4Olvw+GhqWjpS8OZI7Rr5UBtb0+wn6fE/MzmyfrCKBb07US2Ff1aq15eq8iMj1e6MGM3y98TEOVJNx8hIUbVHmtBwZQebqUnFVBlgyoa7Ey2wu2BC9h5TDIAbUKFAKy2TkB+QKpKwUNC5uVgzSyBfcEoBfa944akfNtb5fHWNL3znhbGebtHBcxzvELv7r17O2v/w32zZ8qsXnj4rxILJBesG/v7EwIbetiDAGtezBNZjgROdla0Fow8MSNmUVGxoyKFuw2tqP1Ed4e8K9nT+1HvvsYG8/hT79Ifsw9SWxOttIHaKlyHWCcj6YYMLTX7VOulkC5cYg++3TnzIPfJL+vUS3LcwNzI5I0OVsVwDoWNzQRUrB9yXi4oIuAc6tsCzCNXDyhkCLVmUckZbA9UlCFm7jEAJJrMFXwpIQ5y1OqJ6WKh/L4nSIuxOaXpmiVCZQhXlFW3Zd/orduXfXQOWXIUUpFbd2GSKMJlW9PY1ptYMcL/73/kPapxo0PG7qWH3m9+U0gRboAmw9xE4aLzhvxVjB8bgf+6RiTt0Jye+zn1e/SybIPaziyma2s6iqY3fG4MPwGet5/6DRVyUMW4mxyEsbQhCMA8k8mFNFY2om7a6nHuX9I85Aimzxc5etfSrwjtn1rS5a1l1jb+Fa4kgY1hZSsiGY4rRMa44UM03ANDNVHJJPSzIrBTvjPAGsoeUTa9/8u9+/e7oIYtxjHNtD4Um7uA/ZH+ft/g4O1OgmVVwbR2hGX2BBpFmDGSlhPAiKzguf2LsPbBryHf4PfAdJ3MbfMeVkHXHMOqAHks39Rwc3fmxiJ4Du8yLsnBUkdyfyOLRwz1L//AYfblMlO1HFYPnE9l4lHmJFwxGe5koFVzi572i+hgQRbBDNJ2AYmCXMT684j2r8Wvr9xhtf53/cJdZsOzKf8h/2Ht2GZ/rPWsH5C1fvpyTC3sdhXXbKK7hQojqGB9Z8a7VMfoG+cWvXnj2A5DxP1jIi///8WFQ2TdM6NwFO8mZcfk2YVzmEooVHUfuhCwdU/SwdA9KPpsVyEpPJJ+UPO/AWTG2/6bt2z/3F2Njn6sJhaq5tRvv+v0Hd62fWMu+kW7+06/UJzT/zx7uFYBdECTKWhV2TebxIUuT3ghaDWjk5biMmqJsCQEUQ6JSj6oYLAWlSn0IoFgOUJQl0FFseLJY9FQ7aaJHYwG2xE+Lx+PsAJyZM/DtjmA577gYjB13v2ppmGOel5olnA8TGvMwqxhqcpTh0eJNyM5jqIeb0DcHmyunrPIj/UdPUCeb0AzsclRQdKZP7LL+KDOEcSTCDgqvn8QCwOPo5JiMks47x/Z0dR/88djYwkhnZw23feIB7nj9S398/PjEFvZIqO3PHm6rojwfBZreC3hpZTaq1lET2JABXKoDlZRkQg4fU0SHGutphQciNbw9SRQ8qEemADVx0JaHbYI/1qTGJqyAHEcTKJZGxuMNtxbc6CmVhNQoDy45Q+zHyJQYD5H+0czg0b9Y2ttXv2m9L7O4pVw6Pqf/h4LwyPJ5jurFg/OC/o5re7wO9rl3Nz34hev/8ub7l39zd+P1fY/zC9uud+27+QH+9vWPdnXeffed65obb+p+bkX6PtwzbBNsZ9QHvapVZCl4aUxFz10qHRbeH3t/4n4hf4YT8vRcXQ7wehq+6wOtqKATsXLFFFWIML5fVYKAec5j+0jxgIss56spk3cGqvkxkz3lF0NjbPr6K5Cnm+Zdcb1w4MwqVGdqOoQDsAaHSlcmsGnwbCe+eLDKTFSb5YGoLKjNmoBbOLYQ8Y0QGen49divRj9vtBlv0508HQLp9kZvL9+p+Tb5j+C6bmYZXNdDruu2jctucsIPl1H7oYy690xgJoFxrLjxpGfxpEdttcyh6ATi18PT34Ssqd49Q4Q1XQP97XvnwBar0bb5wLvvrREk/fp96/Wibg2uint7zZqJDKztw9ZW3k5/w/pQCL8P65OYD7QYhCwmiSJflkRdXg9kaQZjHV4AnclJmarrm7/7pua5tssSMBWLTMUfPfz6f/32p/QdsVlhJCN5s0yCN+1HD88999tn6Jtm+JoF3jGJ8I4RvnazdkE9vKODdwzeTxSjyYhvdn3rd0+Q8DUrDnEs74zn4HcxmMz0lqGrHGPCoASVnmracXcQ3jVa7NLUw44CkNcg6BSP79QZhZ3HP/rg+H16o+Hev/+A/ZHDke/hvdw7+V0OB7tjoh1gBkc79wKR9Q1Er0ScWgA+Fhq+14HqgLql3gJqGYvpARRfQP7qnez/PHby+G16QQ/0cnbfxE7ufn5DPmS3sycJzaBttZ7QYjVT8IKzhJdQwFnO01vZdNgdZl3cYH4fu2HiX9j6/PdPCPETJ878Cz2Xz8XZk4Q3qwseC7yehWQ5kEyG4vW8YeJ6AB34kXfeyd/xizd0TT8hsY0lvKh/alJsg6fEy4sKe15s48fh33ZOiW3wNLbBThPbcLIp1shteH5ir/6pj2XDcipHs7Dut0vXzRJPyzBHlk7WzbGaKPC6w0THzbKP5m9/V3xDf/Anp39Or5Pm6wUf8QkyzpQJbhVJvwlWRvzN/K5/5eu50MRJ7hDxgeQPC3ec2wx7dDIyC2Cy0ogPVT/hBulBIbb3wAH4LBvV+bjNuvfpZ+GQZ/Sln2W9qRgb3f/dbbr3Dx2i+R8g424S7mCamSxzh3oqtMOp4GThQVAHX+4gdJQA2VCOp4IPjL6ESDZZnUwmFbs4jj4GJYHGrJBVTD6wq43OhnY8G+ySbIGzoV0AijNarGgIBKVhexlTnpx0SGRSLm+qVnPQlsY2AqydOGK8bSBIXUSKtvbWd81tjXjsznfsSxbfeO+y5SOCpTFq13N6q8Vl8xtu6lj9bv9AsiZsN7PC3v5UrDLWV776Vk6+ddHAmrX3JdLuqs5qV8t2nclssBjsQmbg5odXPRjKnwzE4gE8ywEmm4hsrGauUiV/FVhEZSwNjbByhHoVYOtOT5KIowCAwAzPURE0ByTNmVoFKovCcNmsUgZaoewkmlXaM9khrTdIxEFYcECvGKl2diUXJ6LR1kUhf3LOyEhtczjsLY8OBsuaFnet5N69qnewzJNm3znj5u7yxWOBiT8LxGIkdgtrXwX4jKIdT7Bp14/nwrhyL5JCLVm5A5DoEJFj0ZluhGeVSSUGS7c4YL1CGJfutaP15q/MlvrQu1iw4WGJzSwsnvjMCa7oNtx9i+d96avdC0bKIxV+nc5fESkfWdD91e19i9nOoav65w8O3/pUW20oXMGtqwiHatseXDM8uGDgqiHiD4R1r1NhvlJdOcJcmgJzj0gSUJD8rJVAfhrMPeisFSQCc0JtJjO6rySEOiqLGY3S3Kj8q1qiexLUB2ONS6oqmztGKPSbYiNVzbXRcm/Vu1d3Lra7M4O6k/l2QMBg98qJDdxdQCw+FexqbGMNwD0Esne1un5RN57z4/qjyEdxsn5Mp6pKYnaUlXqbTZhRk1QaMX0BhV0wK1slRfDjTqKgaA2Z3Z4qyiyUbLrZUkcK2GiayutNF5wqfXyg7/kb2zNp3VGiYgR5djUfnP/cltRW01He4GgJiAHWu2zh402Nd628/4vV5Rkx1vGf7ML+ga83XfO9p5+OObJiTffTVOaz7+rGmUqgqJyHWA96jCOwcgBjGEg+PKDEkFSCpdpUpIulDBxkvWmNqSOurSM33aS3N5VV8jbe507tbQtt5Z87u5Z/7nCgtSp4hcBybE5v3H3VoyH0sVnzt3Eg+cD+GmDWMU8zuToAplydUpYZxuVwEsXaQus4GKLKNSgRr0vI6WNyY1IRQV1ZdC3wJU1ZshE1diUA2GcbH+rzrQQjxCjhFZT1mMqWBnKJt2ZQOK2Uhm2Ouq6FKLt8jqFya6gW3YOKayFovIxRTHfhO9dIiqMVPr2MhJ/qJLkWsONFdXayvuvpZEnOTVst2iepNCJJ5XfUD6kOTGRbppjqVOssydxR1cY267orn/n6htvX99+3IJYK6O3ODZltJoET4kvjmXBs0QOfS91o5coqB1tq4zv661JvL9m2sFxKN3cumN/KG6yNPptPL9Z77d5Dd6ea+a5FT/yv+S1lZput2lfBxa96ku0qs4qCt/zlem9sS9PK7+RHItktrb5EOn5XOBxtcWQa3Ra3FKpxOxq4/4tN+ctTYk0y/17I3SpVJHRFfwLKTC/mJRBBqUeTojyh+NCuLEPTzU3tSkKlxLFesNWkyIoRvdXvSf4s2rTI74+mPdwIf6dZ9LeCufUtFHautIdl/6lga7FhNT9ySqxDnBTrkCJpIMUVI/CfsCE3At899/P8TtZP5IwPNGpZB4c3n0opEg9GT5Lo9rZjyI8mkZg7fnIlg9tT9NuorNfMYhigyWp0t36nLTAi2Jstlbz1j0dGDr4mcPoHBx8Xdpx5IOGu6gGi1r09osFoB/HnbCn6c2zEn0MswvEPvkhVE4OqaxrLQQs1HZV14pBeZwD9En6X6JfDRLWkqmROpzepessFfUMjFQazsPnNV755+EareYTd1SeK+U7uI/aW/Ika7p0CLlX4lvq7xEn+rpER6u9Cn5AMPFoH/3JVyJ/lKUQ9aOkYd8HoCj0Fh4K1sToix0pJYBpa0P4i4vSiP5B5XXD6K+e8Hm0aLA91xdzWxusr/C2JUgq50+goUIpU0+A27SirSHjY9Rpdwvq8THgmuswBdskhNz1tpmdFm+uBLnvgDFgB93IALOZrUXs4A+x423KdFrdXYiB81Gg9plVhACqGol/KyiFpyC6UR9TUvoLAL8j4onBwuSWPJh56+GDfcze2t7fpqJDfbPoxbyprDYgVPBH/fta7ZABk/d0ruF4U8aufnXiPS4XLs2K4Xa+beA/lfySlJ7yV30ngpZ7DRPcJX0T3CZbqPsGC7hPWk6gG0XxyTpebKhIp6TztpyQ86tJPp/3AIRwON9cC6747WQFadPZbeBBT/SdOY5k7uXXq+q9ScRC+iB4RmF6PCAvE3UR0CMViy5ZqEegvdpdqEYXVT6NFgOJW26xpEfm07uSiUi0CFw8qnMp3H8DaRfTUmQitootO0gAu25MoKxjFhFRrx6QaSrX0qE1jzI2Qa1PNgury9b0eH1CqeV5ttfHXcz3N9h2aD2gZ3KOVuUHzAVnHcyG8GQmLJxNy5Bimd6s+IKngAypPklPTN8kHFJjkA3I1wYtGptwXmckFRGk3NdkJFOQ0D1Dr4HNfGezoDm+YG2yy2mvrHcYf1Xc9Kei+ckWqJ7KxoTHen/FJ7MJdq3ZuvupL193YtmFOXSY5J9jU5O/cdcUWftPS7VvXt61vaF1c9WBP3Xxis577gD2uuxtOpQaVmiUTDfhwJEfCLZItkbCPhARroUTqKuhaAFPVeUMSeCTQYkJte5NBnVsniEJledxu3LNnBPSYidf3rnxYz+rZd0GNEeZHl3NNh1l3/t+ITF0GcN8gbGDKUQ4RuDtRDvkSmPLFKE7UWc3EQiqhMlVb1RO9AM6eZdHGQX8gknEIIyM2nd/jrRh5d2XXYtGZcXDrhQ1nv+bR+V0B/h7VfzII9zOBZUf8RuwxhQP1x8SxoP4wmM+dQL/OkEBe4G3jaqio6D0SX/rrl95eYBSNC4QNZ/YJGybuGRjgdlOdkL8bru1mHiv6jqRS35FY4juSiO+IRAf2/ben6J1h4YB