tag:blogger.com,1999:blog-28675617272791432102024-03-13T10:48:00.757-07:00The Shiny ObjectPay no attention to that man behind the curtain.gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.comBlogger28125tag:blogger.com,1999:blog-2867561727279143210.post-22613797980566893252023-08-11T18:43:00.031-07:002023-08-16T19:14:41.860-07:00TransFLAC - Convert FLAC audio files to Lossy Formats<h3 style="text-align: left;"><b>FLAC: The Lossless Audio Compression Format</b> <br /></h3><p><a href="https://xiph.org/flac/">FLAC</a>, or Free Lossless Audio Codec, is a lossless audio compression format that preserves all the original audio data. This means that FLAC files can be decoded to an identical copy of the original audio file, without any loss in quality. However, lossless compression typically results in larger file sizes than lossy compression.</p>
<p>FLAC is a popular format for archiving digital audio files, as well as for storing music collections on home computers. It is also becoming increasingly common for music streaming services to offer FLAC as an option for high-quality audio.</p>
<p>For portable devices, where storage space is limited, lossy audio formats such as MP3, AAC, and OGG Vorbis are often used. These formats can achieve much smaller file sizes than lossless formats, while still providing good sound quality.</p>
<p>In general, FLAC is a good choice for applications where lossless audio quality is important, such as archiving, mastering, and critical listening. Lossy formats are a good choice for applications where file size is more important, such as storing music on portable devices or streaming music over the internet.</p><h3 style="text-align: left;">TransFLAC: Convert FLAC to Lossy Format</h3>
<p> </p><p><a href="https://bitbucket.org/gbcox/transflac/wiki/Home">TransFLAC</a> is a command-line application that converts FLAC audio files to a lossy format at a specified quality level. It can keep both the FLAC and lossy libraries synchronized, either partially or fully. TransFLAC also synchronizes album art stored in the directory structure, such as cover, albumart, and folder files. You can run TransFLAC interactively in a terminal window, or you can schedule it to run automatically using applications such as cron or systemd.</p><p>Four parameters are required to be specified:</p><ol style="text-align: left;"><li><b>Input FLAC Directory:</b> The directory to recursively search for FLAC audio files. The case of the directory name matters. TransFLAC will convert all FLAC audio files in the directory tree to the specified lossy codec format. The program will resolve any symlinks encountered and display the physical path.</li><li><b>Output Lossy Directory:</b> The directory to store the lossy audio files. The case of the directory name matters. The program will resolve any symlinks encountered and display the physical path.</li><li><b>Lossy Codec:</b> The codec used to convert the FLAC audio files. The case of the codec name does not matter. OPUS generally provides the best sound quality for a given file size or bitrate, and is the recommended codec.<br />Valid values are: <a href="https://opus-codec.org/">OPUS</a> | <a href="https://xiph.org/vorbis/">OGG</a> | <a href="https://en.wikipedia.org/wiki/Fraunhofer_FDK_AAC">AAC</a> | <a href="https://lame.sourceforge.io/">MP3</a><br /></li><li><b>Codec Quality:</b> The quality preset used to encode the lossy audio files. The case of the quality name does not matter. <b>OPUS STANDARD</b> quality provides full bandwidth, stereo music, good audio quality approaching transparency, and is the recommended setting.<br />Valid values are: LOW | MEDIUM | STANDARD | HIGH | PREMIUM</li></ol><p><b>TransFLAC</b> allows for <a href="https://bitbucket.org/gbcox/transflac/wiki/src-tf-conf-override.sh">customization</a> of certain items in the configuration. The project <a href="https://bitbucket.org/gbcox/transflac/wiki/TransFLAC">wiki</a> provides additional information.</p><p><b>Installation</b> on <a href="https://fedoraproject.org/">Fedora</a>: <b>sudo dnf install transflac</b></p><p><b> </b></p><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="terminal" baseProfile="full" viewBox="0 0 528 563" width="528" version="1.1">
<defs>
<termtosvg:template_settings xmlns:termtosvg="https://github.com/nbedos/termtosvg">
<termtosvg:screen_geometry columns="66" rows="33"/>
<termtosvg:animation type="css"/>
</termtosvg:template_settings>
<style type="text/css" id="generated-style"><![CDATA[#screen {
font-family: 'DejaVu Sans Mono', monospace;
font-style: normal;
font-size: 14px;
}
text {
dominant-baseline: text-before-edge;
white-space: pre;
}
:root {
--animation-duration: 27600ms;
}
@keyframes roll {
0.000%{transform:translateY(0px)}
0.007%{transform:translateY(-578px)}
0.051%{transform:translateY(-1156px)}
1.572%{transform:translateY(-1734px)}
3.156%{transform:translateY(-2312px)}
3.833%{transform:translateY(-2890px)}
4.837%{transform:translateY(-3468px)}
5.888%{transform:translateY(-4046px)}
6.703%{transform:translateY(-4624px)}
7.413%{transform:translateY(-5202px)}
8.478%{transform:translateY(-5780px)}
9.841%{transform:translateY(-6358px)}
9.873%{transform:translateY(-6936px)}
9.880%{transform:translateY(-7514px)}
11.594%{transform:translateY(-8092px)}
12.518%{transform:translateY(-8670px)}
13.250%{transform:translateY(-9248px)}
14.163%{transform:translateY(-9826px)}
14.964%{transform:translateY(-10404px)}
15.986%{transform:translateY(-10982px)}
16.029%{transform:translateY(-11560px)}
16.043%{transform:translateY(-12138px)}
16.058%{transform:translateY(-12716px)}
16.069%{transform:translateY(-13294px)}
16.080%{transform:translateY(-13872px)}
16.091%{transform:translateY(-14450px)}
16.112%{transform:translateY(-15028px)}
16.130%{transform:translateY(-15606px)}
16.145%{transform:translateY(-16184px)}
16.156%{transform:translateY(-16762px)}
16.163%{transform:translateY(-17340px)}
16.174%{transform:translateY(-17918px)}
16.185%{transform:translateY(-18496px)}
16.196%{transform:translateY(-19074px)}
17.699%{transform:translateY(-19652px)}
18.514%{transform:translateY(-20230px)}
19.341%{transform:translateY(-20808px)}
20.080%{transform:translateY(-21386px)}
20.920%{transform:translateY(-21964px)}
21.844%{transform:translateY(-22542px)}
22.736%{transform:translateY(-23120px)}
23.554%{transform:translateY(-23698px)}
24.351%{transform:translateY(-24276px)}
25.511%{transform:translateY(-24854px)}
25.525%{transform:translateY(-25432px)}
25.540%{transform:translateY(-26010px)}
25.558%{transform:translateY(-26588px)}
27.446%{transform:translateY(-27166px)}
28.283%{transform:translateY(-27744px)}
29.112%{transform:translateY(-28322px)}
30.004%{transform:translateY(-28900px)}
30.953%{transform:translateY(-29478px)}
30.971%{transform:translateY(-30056px)}
31.004%{transform:translateY(-30634px)}
32.188%{transform:translateY(-31212px)}
33.000%{transform:translateY(-31790px)}
33.514%{transform:translateY(-32368px)}
34.417%{transform:translateY(-32946px)}
35.221%{transform:translateY(-33524px)}
36.065%{transform:translateY(-34102px)}
36.946%{transform:translateY(-34680px)}
37.801%{transform:translateY(-35258px)}
38.761%{transform:translateY(-35836px)}
38.779%{transform:translateY(-36414px)}
38.833%{transform:translateY(-36992px)}
38.891%{transform:translateY(-37570px)}
38.953%{transform:translateY(-38148px)}
39.141%{transform:translateY(-38726px)}
39.243%{transform:translateY(-39304px)}
39.359%{transform:translateY(-39882px)}
39.612%{transform:translateY(-40460px)}
39.645%{transform:translateY(-41038px)}
39.844%{transform:translateY(-41616px)}
40.051%{transform:translateY(-42194px)}
40.297%{transform:translateY(-42772px)}
40.333%{transform:translateY(-43350px)}
67.797%{transform:translateY(-43928px)}
67.938%{transform:translateY(-44506px)}
68.036%{transform:translateY(-45084px)}
71.993%{transform:translateY(-45662px)}
75.732%{transform:translateY(-46240px)}
79.504%{transform:translateY(-46818px)}
83.417%{transform:translateY(-47396px)}
87.217%{transform:translateY(-47974px)}
90.848%{transform:translateY(-48552px)}
91.025%{transform:translateY(-49130px)}
91.065%{transform:translateY(-49708px)}
92.949%{transform:translateY(-50286px)}
93.841%{transform:translateY(-50864px)}
94.678%{transform:translateY(-51442px)}
95.297%{transform:translateY(-52020px)}
96.341%{transform:translateY(-52598px)}
96.377%{transform:translateY(-53176px)}
100.000%{transform:translateY(-53176px)}
}
#screen_view {
animation-duration: 27600ms;
animation-iteration-count:infinite;
animation-name:roll;
animation-timing-function: steps(1,end);
animation-fill-mode: forwards;
}
]]></style>
<style type="text/css" id="user-style">
/* The colors defined below are the default 16 colors used for rendering text of the terminal. Adjust
them as needed.
PowerShell colors based on https://en.wikipedia.org/wiki/ANSI_escape_code#Colors */
.foreground {fill: #cccccc;}
.background {fill: #0c0c0c;}
.color0 {fill: #0c0c0c;}
.color1 {fill: #c50f1f;}
.color2 {fill: #13a10e;}
.color3 {fill: #c19c00;}
.color4 {fill: #0037da;}
.color5 {fill: #881798;}
.color6 {fill: #3a96dd;}
.color7 {fill: #cccccc;}
.color8 {fill: #767676;}
.color9 {fill: #e74856;}
.color10 {fill: #16c60c;}
.color11 {fill: #f9f1a5;}
.color12 {fill: #3b78ff;}
.color13 {fill: #b4009e;}
.color14 {fill: #61d6d6;}
.color15 {fill: #f2f2f2;}
</style>
</defs>
<svg id="screen" width="528" height="561" viewBox="0 0 528 561" preserveAspectRatio="xMidYMin slice">
<rect class="background" height="100%" width="100%" x="0" y="0"/><defs><g id="g1"><text x="0" textLength="8" class="background"> </text></g><g id="g2"><text x="0" textLength="144" class="foreground">[gbcox@charon ~]$ </text><text x="144" textLength="8" class="background"> </text></g><g id="g3"><text x="0" textLength="152" class="foreground">[gbcox@charon ~]$ t</text><text x="152" textLength="8" class="background"> </text></g><g id="g4"><text x="0" textLength="160" class="foreground">[gbcox@charon ~]$ tr</text><text x="160" textLength="8" class="background"> </text></g><g id="g5"><text x="0" textLength="168" class="foreground">[gbcox@charon ~]$ tra</text><text x="168" textLength="8" class="background"> </text></g><g id="g6"><text x="0" textLength="176" class="foreground">[gbcox@charon ~]$ tran</text><text x="176" textLength="8" class="background"> </text></g><g id="g7"><text x="0" textLength="184" class="foreground">[gbcox@charon ~]$ trans</text><text x="184" textLength="8" class="background"> </text></g><g id="g8"><text x="0" textLength="192" class="foreground">[gbcox@charon ~]$ transf</text><text x="192" textLength="8" class="background"> </text></g><g id="g9"><text x="0" textLength="200" class="foreground">[gbcox@charon ~]$ transfl</text><text x="200" textLength="8" class="background"> </text></g><g id="g10"><text x="0" textLength="208" class="foreground">[gbcox@charon ~]$ transfla</text><text x="208" textLength="8" class="background"> </text></g><g id="g11"><text x="0" textLength="216" class="foreground">[gbcox@charon ~]$ transflac</text><text x="216" textLength="8" class="background"> </text></g><g id="g12"><text x="0" textLength="216" class="foreground">[gbcox@charon ~]$ transflac</text></g><g id="g13"><text x="0" textLength="8" class="background"> </text><text x="8" textLength="208" class="foreground"> </text></g><g id="g14"><text x="0" textLength="408" font-weight="bold" class="color12"> _____ _____ _ _ ____ </text></g><g id="g15"><text x="0" textLength="408" font-weight="bold" class="color12">|_ _| __ __ _ _ __ ___| ___| | / \ / ___|</text></g><g id="g16"><text x="0" textLength="408" font-weight="bold" class="color12"> | || '__/ _` | '_ \/ __| |_ | | / _ \| | </text></g><g id="g17"><text x="0" textLength="408" font-weight="bold" class="color12"> | || | | (_| | | | \__ \ _| | |___ / ___ \ |___ </text></g><g id="g18"><text x="0" textLength="408" font-weight="bold" class="color12"> |_||_| \__,_|_| |_|___/_| |_____/_/ \_\____|</text></g><g id="g19"><text x="0" textLength="408" font-weight="bold" class="color12"> </text></g><g id="g20"><text x="0" textLength="344" class="color2">Please enter input FLAC directory and press</text></g><g id="g21"><text x="0" textLength="80" font-weight="bold" class="color14">[ENTER]: </text><text x="80" textLength="8" class="background"> </text></g><g id="g22"><text x="0" textLength="88" font-weight="bold" class="color14">[ENTER]: m</text><text x="88" textLength="8" class="background"> </text></g><g id="g23"><text x="0" textLength="96" font-weight="bold" class="color14">[ENTER]: mu</text><text x="96" textLength="8" class="background"> </text></g><g id="g24"><text x="0" textLength="104" font-weight="bold" class="color14">[ENTER]: mus</text><text x="104" textLength="8" class="background"> </text></g><g id="g25"><text x="0" textLength="112" font-weight="bold" class="color14">[ENTER]: musi</text><text x="112" textLength="8" class="background"> </text></g><g id="g26"><text x="0" textLength="120" font-weight="bold" class="color14">[ENTER]: music</text><text x="120" textLength="8" class="background"> </text></g><g id="g27"><text x="0" textLength="120" font-weight="bold" class="color14">[ENTER]: music</text></g><g id="g28"><text x="0" textLength="8" class="background"> </text><text x="8" textLength="400" class="foreground"> </text></g><g id="g29"><text x="0" textLength="408" class="foreground"> </text></g><g id="g30"><text x="0" textLength="344" class="foreground"> </text></g><g id="g31"><text x="0" textLength="120" class="foreground"> </text></g><g id="g32"><text x="0" textLength="408" font-weight="bold" class="color12"> _____ _____ _ _ ____ </text><text x="408" textLength="8" class="background"> </text></g><g id="g33"><text x="0" textLength="408" font-weight="bold" class="color12">|_ _| __ __ _ _ __ ___| ___| | / \ / ___|</text><text x="408" textLength="8" class="background"> </text></g><g id="g34"><text x="0" textLength="56" font-weight="bold" class="color9">INPUT </text><text x="56" textLength="80" class="color2">Directory </text><text x="136" textLength="136" class="color3">/home/gbcox/music</text><text x="272" textLength="72" class="color2"> accepted</text></g><g id="g35"><text x="0" textLength="408" font-weight="bold" class="color12"> | || '__/ _` | '_ \/ __| |_ | | / _ \| | </text><text x="408" textLength="8" class="background"> </text></g><g id="g36"><text x="0" textLength="312" class="color2">Please enter output directory and press</text></g><g id="g37"><text x="0" textLength="88" font-weight="bold" class="color14">[ENTER]: o</text><text x="88" textLength="8" class="background"> </text></g><g id="g38"><text x="0" textLength="96" font-weight="bold" class="color14">[ENTER]: op</text><text x="96" textLength="8" class="background"> </text></g><g id="g39"><text x="0" textLength="104" font-weight="bold" class="color14">[ENTER]: opu</text><text x="104" textLength="8" class="background"> </text></g><g id="g40"><text x="0" textLength="112" font-weight="bold" class="color14">[ENTER]: opus</text><text x="112" textLength="8" class="background"> </text></g><g id="g41"><text x="0" textLength="120" font-weight="bold" class="color14">[ENTER]: opusm</text><text x="120" textLength="8" class="background"> </text></g><g id="g42"><text x="0" textLength="128" font-weight="bold" class="color14">[ENTER]: opusmu</text><text x="128" textLength="8" class="background"> </text></g><g id="g43"><text x="0" textLength="136" font-weight="bold" class="color14">[ENTER]: opusmus</text><text x="136" textLength="8" class="background"> </text></g><g id="g44"><text x="0" textLength="144" font-weight="bold" class="color14">[ENTER]: opusmusi</text><text x="144" textLength="8" class="background"> </text></g><g id="g45"><text x="0" textLength="152" font-weight="bold" class="color14">[ENTER]: opusmusic</text><text x="152" textLength="8" class="background"> </text></g><g id="g46"><text x="0" textLength="152" font-weight="bold" class="color14">[ENTER]: opusmusic</text></g><g id="g47"><text x="0" textLength="312" class="foreground"> </text></g><g id="g48"><text x="0" textLength="152" class="foreground"> </text></g><g id="g49"><text x="0" textLength="528" class="foreground"> </text></g><g id="g50"><text x="0" textLength="272" class="foreground"> </text></g><g id="g51"><text x="0" textLength="376" class="foreground"> </text></g><g id="g52"><text x="0" textLength="56" font-weight="bold" class="color9">OUTPUT </text><text x="56" textLength="80" class="color2">Directory </text><text x="136" textLength="168" class="color3">/home/gbcox/opusmusic</text><text x="304" textLength="72" class="color2"> accepted</text></g><g id="g53"><text x="0" textLength="264" class="color2">Please enter desired output CODEC</text></g><g id="g54"><text x="0" textLength="272" class="color3">Supported: OPUS | OGG | AAC | MP3</text></g><g id="g55"><text x="0" textLength="80" font-weight="bold" class="color14">[ENTER]: </text><text x="80" textLength="8" class="background"> </text><text x="88" textLength="440" class="foreground"> </text></g><g id="g56"><text x="0" textLength="88" font-weight="bold" class="color14">[ENTER]: o</text><text x="88" textLength="8" class="background"> </text><text x="96" textLength="432" class="foreground"> </text></g><g id="g57"><text x="0" textLength="96" font-weight="bold" class="color14">[ENTER]: op</text><text x="96" textLength="8" class="background"> </text><text x="104" textLength="424" class="foreground"> </text></g><g id="g58"><text x="0" textLength="104" font-weight="bold" class="color14">[ENTER]: opu</text><text x="104" textLength="8" class="background"> </text><text x="112" textLength="416" class="foreground"> </text></g><g id="g59"><text x="0" textLength="112" font-weight="bold" class="color14">[ENTER]: opus</text><text x="112" textLength="8" class="background"> </text><text x="120" textLength="408" class="foreground"> </text></g><g id="g60"><text x="0" textLength="112" font-weight="bold" class="color14">[ENTER]: opus</text><text x="112" textLength="416" class="foreground"> </text></g><g id="g61"><text x="0" textLength="8" class="background"> </text><text x="8" textLength="264" class="foreground"> </text></g><g id="g62"><text x="0" textLength="264" class="foreground"> </text></g><g id="g63"><text x="0" textLength="104" font-weight="bold" class="color9">Transcoding: </text><text x="104" textLength="96" class="color3">FLAC to OPUS</text><text x="200" textLength="112" class="foreground"> </text></g><g id="g64"><text x="0" textLength="272" class="color2">Please enter desired CODEC QUALITY</text></g><g id="g65"><text x="0" textLength="416" class="color3">Supported: LOW | MEDIUM | STANDARD | HIGH | PREMIUM</text><text x="416" textLength="112" class="foreground"> </text></g><g id="g66"><text x="0" textLength="80" font-weight="bold" class="color14">[ENTER]: </text><text x="80" textLength="8" class="background"> </text><text x="88" textLength="184" class="foreground"> </text></g><g id="g67"><text x="0" textLength="88" font-weight="bold" class="color14">[ENTER]: s</text><text x="88" textLength="8" class="background"> </text><text x="96" textLength="176" class="foreground"> </text></g><g id="g68"><text x="0" textLength="96" font-weight="bold" class="color14">[ENTER]: st</text><text x="96" textLength="8" class="background"> </text><text x="104" textLength="168" class="foreground"> </text></g><g id="g69"><text x="0" textLength="104" font-weight="bold" class="color14">[ENTER]: sta</text><text x="104" textLength="8" class="background"> </text><text x="112" textLength="160" class="foreground"> </text></g><g id="g70"><text x="0" textLength="112" font-weight="bold" class="color14">[ENTER]: stan</text><text x="112" textLength="8" class="background"> </text><text x="120" textLength="152" class="foreground"> </text></g><g id="g71"><text x="0" textLength="120" font-weight="bold" class="color14">[ENTER]: stand</text><text x="120" textLength="8" class="background"> </text><text x="128" textLength="144" class="foreground"> </text></g><g id="g72"><text x="0" textLength="128" font-weight="bold" class="color14">[ENTER]: standa</text><text x="128" textLength="8" class="background"> </text><text x="136" textLength="136" class="foreground"> </text></g><g id="g73"><text x="0" textLength="136" font-weight="bold" class="color14">[ENTER]: standar</text><text x="136" textLength="8" class="background"> </text><text x="144" textLength="128" class="foreground"> </text></g><g id="g74"><text x="0" textLength="144" font-weight="bold" class="color14">[ENTER]: standard</text><text x="144" textLength="8" class="background"> </text><text x="152" textLength="120" class="foreground"> </text></g><g id="g75"><text x="0" textLength="144" font-weight="bold" class="color14">[ENTER]: standard</text><text x="144" textLength="128" class="foreground"> </text></g><g id="g76"><text x="0" textLength="8" class="background"> </text><text x="8" textLength="336" class="foreground"> </text></g><g id="g77"><text x="0" textLength="136" font-weight="bold" class="color9">Quality Setting: </text><text x="136" textLength="64" class="color3">STANDARD</text><text x="200" textLength="64" class="foreground"> </text></g><g id="g78"><text x="0" textLength="48" font-weight="bold" class="color9">INPUT </text><text x="48" textLength="88" class="color2"> Directory </text><text x="136" textLength="136" class="color3">/home/gbcox/music</text><text x="272" textLength="72" class="foreground"> </text></g><g id="g79"><text x="0" textLength="8" class="background"> </text><text x="8" textLength="368" class="foreground"> </text></g><g id="g80"><text x="0" textLength="48" font-weight="bold" class="color9">OUTPUT</text><text x="48" textLength="88" class="color2"> Directory </text><text x="136" textLength="168" class="color3">/home/gbcox/opusmusic</text><text x="304" textLength="72" class="foreground"> </text></g><g id="g81"><text x="0" textLength="24" class="color6">***</text><text x="24" textLength="32" class="color7"> 18 </text><text x="56" textLength="248" class="color2">FLAC files are being processed </text><text x="304" textLength="24" class="color6">***</text><text x="328" textLength="200" class="foreground"> </text></g><g id="g82"><text x="0" textLength="248" font-weight="bold" class="color11">../tina_turner/simply_the_best </text><text x="248" textLength="280" class="foreground"> </text></g><g id="g83"><text x="0" textLength="72" class="color7"> 17: </text><text x="72" textLength="96" font-weight="bold" class="color12">01_the_best </text><text x="168" textLength="208" class="foreground"> </text></g><g id="g84"><text x="0" textLength="72" class="color7"> 16: </text><text x="72" textLength="192" font-weight="bold" class="color12">02_better_be_good_to_me </text></g><g id="g85"><text x="0" textLength="72" class="color7"> 15: </text><text x="72" textLength="256" font-weight="bold" class="color12">07_what_you_get_is_what_you_see </text></g><g id="g86"><text x="0" textLength="72" class="color7"> 14: </text><text x="72" textLength="240" font-weight="bold" class="color12">09_river_deep_-_mountain_high </text></g><g id="g87"><text x="0" textLength="72" class="color7"> 5: </text><text x="72" textLength="208" font-weight="bold" class="color12">03_i_can't_stand_the_rain </text></g><g id="g88"><text x="0" textLength="72" class="color7"> 4: </text><text x="72" textLength="264" font-weight="bold" class="color12">04_what's_love_got_to_do_with_it </text><text x="336" textLength="8" class="background"> </text></g><g id="g89"><text x="0" textLength="72" class="color7"> 4: </text><text x="72" textLength="264" font-weight="bold" class="color12">04_what's_love_got_to_do_with_it </text></g><g id="g90"><text x="0" textLength="72" class="color7"> 3: </text><text x="72" textLength="208" font-weight="bold" class="color12">05_i_don't_wanna_lose_you </text></g><g id="g91"><text x="0" textLength="72" class="color7"> 2: </text><text x="72" textLength="336" font-weight="bold" class="color12">06_nutbush_city_limits_(the_90's_version) </text></g><g id="g92"><text x="0" textLength="72" class="color7"> 1: </text><text x="72" textLength="184" font-weight="bold" class="color12">08_let's_stay_together </text><text x="256" textLength="8" class="background"> </text></g><g id="g93"><text x="0" textLength="72" class="color7"> 1: </text><text x="72" textLength="184" font-weight="bold" class="color12">08_let's_stay_together </text></g><g id="g94"><text x="0" textLength="280" class="color3">Completing remaining 4 processes...</text></g><g id="g95"><text x="0" textLength="8" class="background">[</text><text x="8" textLength="432" class="color4">--------------------------------------------------] 0%</text></g><g id="g96"><text x="0" textLength="8" class="background">[</text><text x="8" textLength="440" class="color4">#########################-------------------------] 50%</text></g><g id="g97"><text x="0" textLength="8" class="background">[</text><text x="8" textLength="440" class="color4">#####################################-------------] 75%</text></g><g id="g98"><text x="0" textLength="456" class="color4">[##################################################] 100%</text></g><g id="g99"><text x="0" textLength="240" class="color3">Syncing all album art files...</text></g><g id="g100"><text x="0" textLength="152" class="color6">Processing complete</text></g><g id="g101"><text x="0" textLength="152" class="foreground">[gbcox@charon ~]$ e</text><text x="152" textLength="8" class="background"> </text></g><g id="g102"><text x="0" textLength="160" class="foreground">[gbcox@charon ~]$ ex</text><text x="160" textLength="8" class="background"> </text></g><g id="g103"><text x="0" textLength="168" class="foreground">[gbcox@charon ~]$ exi</text><text x="168" textLength="8" class="background"> </text></g><g id="g104"><text x="0" textLength="176" class="foreground">[gbcox@charon ~]$ exit</text><text x="176" textLength="8" class="background"> </text></g><g id="g105"><text x="0" textLength="176" class="foreground">[gbcox@charon ~]$ exit</text></g><g id="g106"><text x="0" textLength="32" class="foreground">exit</text></g></defs><g id="screen_view"><g><rect x="0" y="0" width="8" height="17" class="foreground"/><use xlink:href="#g1" y="0"/></g><g><rect x="144" y="578" width="8" height="17" class="foreground"/><use xlink:href="#g2" y="578"/></g><g><rect x="152" y="1156" width="8" height="17" class="foreground"/><use xlink:href="#g3" y="1156"/></g><g><rect x="160" y="1734" width="8" height="17" class="foreground"/><use xlink:href="#g4" y="1734"/></g><g><rect x="168" y="2312" width="8" height="17" class="foreground"/><use xlink:href="#g5" y="2312"/></g><g><rect x="176" y="2890" width="8" height="17" class="foreground"/><use xlink:href="#g6" y="2890"/></g><g><rect x="184" y="3468" width="8" height="17" class="foreground"/><use xlink:href="#g7" y="3468"/></g><g><rect x="192" y="4046" width="8" height="17" class="foreground"/><use xlink:href="#g8" y="4046"/></g><g><rect x="200" y="4624" width="8" height="17" class="foreground"/><use xlink:href="#g9" y="4624"/></g><g><rect x="208" y="5202" width="8" height="17" class="foreground"/><use xlink:href="#g10" y="5202"/></g><g><rect x="216" y="5780" width="8" height="17" class="foreground"/><use xlink:href="#g11" y="5780"/></g><g><use xlink:href="#g12" y="6358"/><rect x="0" y="6375" width="8" height="17" class="foreground"/><use xlink:href="#g1" y="6375"/></g><g><rect x="0" y="6936" width="8" height="17" class="color4"/><use xlink:href="#g13" y="6936"/></g><g><use xlink:href="#g14" y="7514"/><use xlink:href="#g15" y="7531"/><use xlink:href="#g16" y="7548"/><use xlink:href="#g17" y="7565"/><use xlink:href="#g18" y="7582"/><use xlink:href="#g19" y="7599"/><use xlink:href="#g20" y="7616"/><rect x="80" y="7633" width="8" height="17" class="color6"/><use xlink:href="#g21" y="7633"/></g><g><use xlink:href="#g14" y="8092"/><use xlink:href="#g15" y="8109"/><use xlink:href="#g16" y="8126"/><use xlink:href="#g17" y="8143"/><use xlink:href="#g18" y="8160"/><use xlink:href="#g19" y="8177"/><use xlink:href="#g20" y="8194"/><rect x="88" y="8211" width="8" height="17" class="color6"/><use xlink:href="#g22" y="8211"/></g><g><use xlink:href="#g14" y="8670"/><use xlink:href="#g15" y="8687"/><use xlink:href="#g16" y="8704"/><use xlink:href="#g17" y="8721"/><use xlink:href="#g18" y="8738"/><use xlink:href="#g19" y="8755"/><use xlink:href="#g20" y="8772"/><rect x="96" y="8789" width="8" height="17" class="color6"/><use xlink:href="#g23" y="8789"/></g><g><use xlink:href="#g14" y="9248"/><use xlink:href="#g15" y="9265"/><use xlink:href="#g16" y="9282"/><use xlink:href="#g17" y="9299"/><use xlink:href="#g18" y="9316"/><use xlink:href="#g19" y="9333"/><use xlink:href="#g20" y="9350"/><rect x="104" y="9367" width="8" height="17" class="color6"/><use xlink:href="#g24" y="9367"/></g><g><use xlink:href="#g14" y="9826"/><use xlink:href="#g15" y="9843"/><use xlink:href="#g16" y="9860"/><use xlink:href="#g17" y="9877"/><use xlink:href="#g18" y="9894"/><use xlink:href="#g19" y="9911"/><use xlink:href="#g20" y="9928"/><rect x="112" y="9945" width="8" height="17" class="color6"/><use xlink:href="#g25" y="9945"/></g><g><use xlink:href="#g14" y="10404"/><use xlink:href="#g15" y="10421"/><use xlink:href="#g16" y="10438"/><use xlink:href="#g17" y="10455"/><use xlink:href="#g18" y="10472"/><use xlink:href="#g19" y="10489"/><use xlink:href="#g20" y="10506"/><rect x="120" y="10523" width="8" height="17" class="color6"/><use xlink:href="#g26" y="10523"/></g><g><use xlink:href="#g14" y="10982"/><use xlink:href="#g15" y="10999"/><use xlink:href="#g16" y="11016"/><use xlink:href="#g17" y="11033"/><use xlink:href="#g18" y="11050"/><use xlink:href="#g19" y="11067"/><use xlink:href="#g20" y="11084"/><use xlink:href="#g27" y="11101"/><rect x="0" y="11135" width="8" height="17" class="foreground"/><use xlink:href="#g1" y="11135"/></g><g><rect x="0" y="11560" width="8" height="17" class="foreground"/><use xlink:href="#g28" y="11560"/><use xlink:href="#g29" y="11577"/><use xlink:href="#g29" y="11594"/><use xlink:href="#g29" y="11611"/><use xlink:href="#g29" y="11628"/><use xlink:href="#g29" y="11645"/><use xlink:href="#g30" y="11662"/><use xlink:href="#g31" y="11679"/></g><g><rect x="0" y="12138" width="8" height="17" class="color4"/><use xlink:href="#g28" y="12138"/><use xlink:href="#g29" y="12155"/><use xlink:href="#g29" y="12172"/><use xlink:href="#g29" y="12189"/><use xlink:href="#g29" y="12206"/><use xlink:href="#g29" y="12223"/><use xlink:href="#g30" y="12240"/><use xlink:href="#g31" y="12257"/></g><g><rect x="408" y="12716" width="8" height="17" class="color4"/><use xlink:href="#g32" y="12716"/><use xlink:href="#g29" y="12733"/><use xlink:href="#g29" y="12750"/><use xlink:href="#g29" y="12767"/><use xlink:href="#g29" y="12784"/><use xlink:href="#g29" y="12801"/><use xlink:href="#g30" y="12818"/><use xlink:href="#g31" y="12835"/></g><g><use xlink:href="#g14" y="13294"/><rect x="0" y="13311" width="8" height="17" class="color4"/><use xlink:href="#g28" y="13311"/><use xlink:href="#g29" y="13328"/><use xlink:href="#g29" y="13345"/><use xlink:href="#g29" y="13362"/><use xlink:href="#g29" y="13379"/><use xlink:href="#g30" y="13396"/><use xlink:href="#g31" y="13413"/></g><g><use xlink:href="#g14" y="13872"/><rect x="408" y="13889" width="8" height="17" class="color4"/><use xlink:href="#g33" y="13889"/><use xlink:href="#g29" y="13906"/><use xlink:href="#g29" y="13923"/><use xlink:href="#g29" y="13940"/><use xlink:href="#g29" y="13957"/><use xlink:href="#g30" y="13974"/><use xlink:href="#g31" y="13991"/></g><g><use xlink:href="#g14" y="14450"/><use xlink:href="#g15" y="14467"/><use xlink:href="#g16" y="14484"/><use xlink:href="#g17" y="14501"/><use xlink:href="#g18" y="14518"/><use xlink:href="#g19" y="14535"/><use xlink:href="#g34" y="14552"/><use xlink:href="#g31" y="14569"/><rect x="0" y="14586" width="8" height="17" class="foreground"/><use xlink:href="#g1" y="14586"/></g><g><rect x="0" y="15028" width="8" height="17" class="foreground"/><use xlink:href="#g28" y="15028"/><use xlink:href="#g29" y="15045"/><use xlink:href="#g29" y="15062"/><use xlink:href="#g29" y="15079"/><use xlink:href="#g29" y="15096"/><use xlink:href="#g29" y="15113"/><use xlink:href="#g30" y="15130"/><use xlink:href="#g31" y="15147"/></g><g><rect x="0" y="15606" width="8" height="17" class="color4"/><use xlink:href="#g28" y="15606"/><use xlink:href="#g29" y="15623"/><use xlink:href="#g29" y="15640"/><use xlink:href="#g29" y="15657"/><use xlink:href="#g29" y="15674"/><use xlink:href="#g29" y="15691"/><use xlink:href="#g30" y="15708"/><use xlink:href="#g31" y="15725"/></g><g><rect x="408" y="16184" width="8" height="17" class="color4"/><use xlink:href="#g32" y="16184"/><use xlink:href="#g29" y="16201"/><use xlink:href="#g29" y="16218"/><use xlink:href="#g29" y="16235"/><use xlink:href="#g29" y="16252"/><use xlink:href="#g29" y="16269"/><use xlink:href="#g30" y="16286"/><use xlink:href="#g31" y="16303"/></g><g><use xlink:href="#g14" y="16762"/><rect x="0" y="16779" width="8" height="17" class="color4"/><use xlink:href="#g28" y="16779"/><use xlink:href="#g29" y="16796"/><use xlink:href="#g29" y="16813"/><use xlink:href="#g29" y="16830"/><use xlink:href="#g29" y="16847"/><use xlink:href="#g30" y="16864"/><use xlink:href="#g31" y="16881"/></g><g><use xlink:href="#g14" y="17340"/><rect x="408" y="17357" width="8" height="17" class="color4"/><use xlink:href="#g33" y="17357"/><use xlink:href="#g29" y="17374"/><use xlink:href="#g29" y="17391"/><use xlink:href="#g29" y="17408"/><use xlink:href="#g29" y="17425"/><use xlink:href="#g30" y="17442"/><use xlink:href="#g31" y="17459"/></g><g><use xlink:href="#g14" y="17918"/><use xlink:href="#g15" y="17935"/><rect x="0" y="17952" width="8" height="17" class="color4"/><use xlink:href="#g28" y="17952"/><use xlink:href="#g29" y="17969"/><use xlink:href="#g29" y="17986"/><use xlink:href="#g29" y="18003"/><use xlink:href="#g30" y="18020"/><use xlink:href="#g31" y="18037"/></g><g><use xlink:href="#g14" y="18496"/><use xlink:href="#g15" y="18513"/><rect x="408" y="18530" width="8" height="17" class="color4"/><use xlink:href="#g35" y="18530"/><use xlink:href="#g29" y="18547"/><use xlink:href="#g29" y="18564"/><use xlink:href="#g29" y="18581"/><use xlink:href="#g30" y="18598"/><use xlink:href="#g31" y="18615"/></g><g><use xlink:href="#g14" y="19074"/><use xlink:href="#g15" y="19091"/><use xlink:href="#g16" y="19108"/><use xlink:href="#g17" y="19125"/><use xlink:href="#g18" y="19142"/><use xlink:href="#g19" y="19159"/><use xlink:href="#g34" y="19176"/><use xlink:href="#g31" y="19193"/><use xlink:href="#g36" y="19210"/><rect x="80" y="19227" width="8" height="17" class="color6"/><use xlink:href="#g21" y="19227"/></g><g><use xlink:href="#g14" y="19652"/><use xlink:href="#g15" y="19669"/><use xlink:href="#g16" y="19686"/><use xlink:href="#g17" y="19703"/><use xlink:href="#g18" y="19720"/><use xlink:href="#g19" y="19737"/><use xlink:href="#g34" y="19754"/><use xlink:href="#g31" y="19771"/><use xlink:href="#g36" y="19788"/><rect x="88" y="19805" width="8" height="17" class="color6"/><use xlink:href="#g37" y="19805"/></g><g><use xlink:href="#g14" y="20230"/><use xlink:href="#g15" y="20247"/><use xlink:href="#g16" y="20264"/><use xlink:href="#g17" y="20281"/><use xlink:href="#g18" y="20298"/><use xlink:href="#g19" y="20315"/><use xlink:href="#g34" y="20332"/><use xlink:href="#g31" y="20349"/><use xlink:href="#g36" y="20366"/><rect x="96" y="20383" width="8" height="17" class="color6"/><use xlink:href="#g38" y="20383"/></g><g><use xlink:href="#g14" y="20808"/><use xlink:href="#g15" y="20825"/><use xlink:href="#g16" y="20842"/><use xlink:href="#g17" y="20859"/><use xlink:href="#g18" y="20876"/><use xlink:href="#g19" y="20893"/><use xlink:href="#g34" y="20910"/><use xlink:href="#g31" y="20927"/><use xlink:href="#g36" y="20944"/><rect x="104" y="20961" width="8" height="17" class="color6"/><use xlink:href="#g39" y="20961"/></g><g><use xlink:href="#g14" y="21386"/><use xlink:href="#g15" y="21403"/><use xlink:href="#g16" y="21420"/><use xlink:href="#g17" y="21437"/><use xlink:href="#g18" y="21454"/><use xlink:href="#g19" y="21471"/><use xlink:href="#g34" y="21488"/><use xlink:href="#g31" y="21505"/><use xlink:href="#g36" y="21522"/><rect x="112" y="21539" width="8" height="17" class="color6"/><use xlink:href="#g40" y="21539"/></g><g><use xlink:href="#g14" y="21964"/><use xlink:href="#g15" y="21981"/><use xlink:href="#g16" y="21998"/><use xlink:href="#g17" y="22015"/><use xlink:href="#g18" y="22032"/><use xlink:href="#g19" y="22049"/><use xlink:href="#g34" y="22066"/><use xlink:href="#g31" y="22083"/><use xlink:href="#g36" y="22100"/><rect x="120" y="22117" width="8" height="17" class="color6"/><use xlink:href="#g41" y="22117"/></g><g><use xlink:href="#g14" y="22542"/><use xlink:href="#g15" y="22559"/><use xlink:href="#g16" y="22576"/><use xlink:href="#g17" y="22593"/><use xlink:href="#g18" y="22610"/><use xlink:href="#g19" y="22627"/><use xlink:href="#g34" y="22644"/><use xlink:href="#g31" y="22661"/><use xlink:href="#g36" y="22678"/><rect x="128" y="22695" width="8" height="17" class="color6"/><use xlink:href="#g42" y="22695"/></g><g><use xlink:href="#g14" y="23120"/><use xlink:href="#g15" y="23137"/><use xlink:href="#g16" y="23154"/><use xlink:href="#g17" y="23171"/><use xlink:href="#g18" y="23188"/><use xlink:href="#g19" y="23205"/><use xlink:href="#g34" y="23222"/><use xlink:href="#g31" y="23239"/><use xlink:href="#g36" y="23256"/><rect x="136" y="23273" width="8" height="17" class="color6"/><use xlink:href="#g43" y="23273"/></g><g><use xlink:href="#g14" y="23698"/><use xlink:href="#g15" y="23715"/><use xlink:href="#g16" y="23732"/><use xlink:href="#g17" y="23749"/><use xlink:href="#g18" y="23766"/><use xlink:href="#g19" y="23783"/><use xlink:href="#g34" y="23800"/><use xlink:href="#g31" y="23817"/><use xlink:href="#g36" y="23834"/><rect x="144" y="23851" width="8" height="17" class="color6"/><use xlink:href="#g44" y="23851"/></g><g><use xlink:href="#g14" y="24276"/><use xlink:href="#g15" y="24293"/><use xlink:href="#g16" y="24310"/><use xlink:href="#g17" y="24327"/><use xlink:href="#g18" y="24344"/><use xlink:href="#g19" y="24361"/><use xlink:href="#g34" y="24378"/><use xlink:href="#g31" y="24395"/><use xlink:href="#g36" y="24412"/><rect x="152" y="24429" width="8" height="17" class="color6"/><use xlink:href="#g45" y="24429"/></g><g><use xlink:href="#g14" y="24854"/><use xlink:href="#g15" y="24871"/><use xlink:href="#g16" y="24888"/><use xlink:href="#g17" y="24905"/><use xlink:href="#g18" y="24922"/><use xlink:href="#g19" y="24939"/><use xlink:href="#g34" y="24956"/><use xlink:href="#g31" y="24973"/><use xlink:href="#g36" y="24990"/><use xlink:href="#g46" y="25007"/><rect x="0" y="25024" width="8" height="17" class="color6"/><use xlink:href="#g1" y="25024"/></g><g><use xlink:href="#g14" y="25432"/><use xlink:href="#g15" y="25449"/><use xlink:href="#g16" y="25466"/><use xlink:href="#g17" y="25483"/><use xlink:href="#g18" y="25500"/><use xlink:href="#g19" y="25517"/><use xlink:href="#g34" y="25534"/><use xlink:href="#g31" y="25551"/><use xlink:href="#g36" y="25568"/><use xlink:href="#g46" y="25585"/><rect x="0" y="25619" width="8" height="17" class="foreground"/><use xlink:href="#g1" y="25619"/></g><g><rect x="0" y="26010" width="8" height="17" class="color4"/><use xlink:href="#g28" y="26010"/><use xlink:href="#g29" y="26027"/><use xlink:href="#g29" y="26044"/><use xlink:href="#g29" y="26061"/><use xlink:href="#g29" y="26078"/><use xlink:href="#g29" y="26095"/><use xlink:href="#g30" y="26112"/><use xlink:href="#g31" y="26129"/><use xlink:href="#g47" y="26146"/><use xlink:href="#g48" y="26163"/><use xlink:href="#g49" y="26197"/><use xlink:href="#g50" y="26214"/><use xlink:href="#g30" y="26231"/><use xlink:href="#g51" y="26248"/></g><g><use xlink:href="#g14" y="26588"/><use xlink:href="#g15" y="26605"/><use xlink:href="#g16" y="26622"/><use xlink:href="#g17" y="26639"/><use xlink:href="#g18" y="26656"/><use xlink:href="#g19" y="26673"/><use xlink:href="#g34" y="26690"/><use xlink:href="#g52" y="26707"/><use xlink:href="#g47" y="26724"/><use xlink:href="#g53" y="26741"/><use xlink:href="#g54" y="26758"/><rect x="80" y="26775" width="8" height="17" class="color6"/><use xlink:href="#g55" y="26775"/><use xlink:href="#g50" y="26792"/><use xlink:href="#g30" y="26809"/><use xlink:href="#g51" y="26826"/></g><g><use xlink:href="#g14" y="27166"/><use xlink:href="#g15" y="27183"/><use xlink:href="#g16" y="27200"/><use xlink:href="#g17" y="27217"/><use xlink:href="#g18" y="27234"/><use xlink:href="#g19" y="27251"/><use xlink:href="#g34" y="27268"/><use xlink:href="#g52" y="27285"/><use xlink:href="#g47" y="27302"/><use xlink:href="#g53" y="27319"/><use xlink:href="#g54" y="27336"/><rect x="88" y="27353" width="8" height="17" class="color6"/><use xlink:href="#g56" y="27353"/><use xlink:href="#g50" y="27370"/><use xlink:href="#g30" y="27387"/><use xlink:href="#g51" y="27404"/></g><g><use xlink:href="#g14" y="27744"/><use xlink:href="#g15" y="27761"/><use xlink:href="#g16" y="27778"/><use xlink:href="#g17" y="27795"/><use xlink:href="#g18" y="27812"/><use xlink:href="#g19" y="27829"/><use xlink:href="#g34" y="27846"/><use xlink:href="#g52" y="27863"/><use xlink:href="#g47" y="27880"/><use xlink:href="#g53" y="27897"/><use xlink:href="#g54" y="27914"/><rect x="96" y="27931" width="8" height="17" class="color6"/><use xlink:href="#g57" y="27931"/><use xlink:href="#g50" y="27948"/><use xlink:href="#g30" y="27965"/><use xlink:href="#g51" y="27982"/></g><g><use xlink:href="#g14" y="28322"/><use xlink:href="#g15" y="28339"/><use xlink:href="#g16" y="28356"/><use xlink:href="#g17" y="28373"/><use xlink:href="#g18" y="28390"/><use xlink:href="#g19" y="28407"/><use xlink:href="#g34" y="28424"/><use xlink:href="#g52" y="28441"/><use xlink:href="#g47" y="28458"/><use xlink:href="#g53" y="28475"/><use xlink:href="#g54" y="28492"/><rect x="104" y="28509" width="8" height="17" class="color6"/><use xlink:href="#g58" y="28509"/><use xlink:href="#g50" y="28526"/><use xlink:href="#g30" y="28543"/><use xlink:href="#g51" y="28560"/></g><g><use xlink:href="#g14" y="28900"/><use xlink:href="#g15" y="28917"/><use xlink:href="#g16" y="28934"/><use xlink:href="#g17" y="28951"/><use xlink:href="#g18" y="28968"/><use xlink:href="#g19" y="28985"/><use xlink:href="#g34" y="29002"/><use xlink:href="#g52" y="29019"/><use xlink:href="#g47" y="29036"/><use xlink:href="#g53" y="29053"/><use xlink:href="#g54" y="29070"/><rect x="112" y="29087" width="8" height="17" class="color6"/><use xlink:href="#g59" y="29087"/><use xlink:href="#g50" y="29104"/><use xlink:href="#g30" y="29121"/><use xlink:href="#g51" y="29138"/></g><g><use xlink:href="#g14" y="29478"/><use xlink:href="#g15" y="29495"/><use xlink:href="#g16" y="29512"/><use xlink:href="#g17" y="29529"/><use xlink:href="#g18" y="29546"/><use xlink:href="#g19" y="29563"/><use xlink:href="#g34" y="29580"/><use xlink:href="#g52" y="29597"/><use xlink:href="#g47" y="29614"/><use xlink:href="#g53" y="29631"/><use xlink:href="#g54" y="29648"/><use xlink:href="#g60" y="29665"/><rect x="0" y="29682" width="8" height="17" class="color6"/><use xlink:href="#g61" y="29682"/><use xlink:href="#g30" y="29699"/><use xlink:href="#g51" y="29716"/></g><g><rect x="0" y="30056" width="8" height="17" class="color4"/><use xlink:href="#g28" y="30056"/><use xlink:href="#g29" y="30073"/><use xlink:href="#g29" y="30090"/><use xlink:href="#g29" y="30107"/><use xlink:href="#g29" y="30124"/><use xlink:href="#g29" y="30141"/><use xlink:href="#g30" y="30158"/><use xlink:href="#g51" y="30175"/><use xlink:href="#g47" y="30192"/><use xlink:href="#g62" y="30209"/><use xlink:href="#g50" y="30226"/><use xlink:href="#g49" y="30243"/><use xlink:href="#g50" y="30260"/><use xlink:href="#g30" y="30277"/><use xlink:href="#g51" y="30294"/></g><g><use xlink:href="#g14" y="30634"/><use xlink:href="#g15" y="30651"/><use xlink:href="#g16" y="30668"/><use xlink:href="#g17" y="30685"/><use xlink:href="#g18" y="30702"/><use xlink:href="#g19" y="30719"/><use xlink:href="#g34" y="30736"/><use xlink:href="#g52" y="30753"/><use xlink:href="#g63" y="30770"/><use xlink:href="#g62" y="30787"/><use xlink:href="#g64" y="30804"/><use xlink:href="#g65" y="30821"/><rect x="80" y="30838" width="8" height="17" class="color6"/><use xlink:href="#g66" y="30838"/><use xlink:href="#g30" y="30855"/><use xlink:href="#g51" y="30872"/></g><g><use xlink:href="#g14" y="31212"/><use xlink:href="#g15" y="31229"/><use xlink:href="#g16" y="31246"/><use xlink:href="#g17" y="31263"/><use xlink:href="#g18" y="31280"/><use xlink:href="#g19" y="31297"/><use xlink:href="#g34" y="31314"/><use xlink:href="#g52" y="31331"/><use xlink:href="#g63" y="31348"/><use xlink:href="#g62" y="31365"/><use xlink:href="#g64" y="31382"/><use xlink:href="#g65" y="31399"/><rect x="88" y="31416" width="8" height="17" class="color6"/><use xlink:href="#g67" y="31416"/><use xlink:href="#g30" y="31433"/><use xlink:href="#g51" y="31450"/></g><g><use xlink:href="#g14" y="31790"/><use xlink:href="#g15" y="31807"/><use xlink:href="#g16" y="31824"/><use xlink:href="#g17" y="31841"/><use xlink:href="#g18" y="31858"/><use xlink:href="#g19" y="31875"/><use xlink:href="#g34" y="31892"/><use xlink:href="#g52" y="31909"/><use xlink:href="#g63" y="31926"/><use xlink:href="#g62" y="31943"/><use xlink:href="#g64" y="31960"/><use xlink:href="#g65" y="31977"/><rect x="96" y="31994" width="8" height="17" class="color6"/><use xlink:href="#g68" y="31994"/><use xlink:href="#g30" y="32011"/><use xlink:href="#g51" y="32028"/></g><g><use xlink:href="#g14" y="32368"/><use xlink:href="#g15" y="32385"/><use xlink:href="#g16" y="32402"/><use xlink:href="#g17" y="32419"/><use xlink:href="#g18" y="32436"/><use xlink:href="#g19" y="32453"/><use xlink:href="#g34" y="32470"/><use xlink:href="#g52" y="32487"/><use xlink:href="#g63" y="32504"/><use xlink:href="#g62" y="32521"/><use xlink:href="#g64" y="32538"/><use xlink:href="#g65" y="32555"/><rect x="104" y="32572" width="8" height="17" class="color6"/><use xlink:href="#g69" y="32572"/><use xlink:href="#g30" y="32589"/><use xlink:href="#g51" y="32606"/></g><g><use xlink:href="#g14" y="32946"/><use xlink:href="#g15" y="32963"/><use xlink:href="#g16" y="32980"/><use xlink:href="#g17" y="32997"/><use xlink:href="#g18" y="33014"/><use xlink:href="#g19" y="33031"/><use xlink:href="#g34" y="33048"/><use xlink:href="#g52" y="33065"/><use xlink:href="#g63" y="33082"/><use xlink:href="#g62" y="33099"/><use xlink:href="#g64" y="33116"/><use xlink:href="#g65" y="33133"/><rect x="112" y="33150" width="8" height="17" class="color6"/><use xlink:href="#g70" y="33150"/><use xlink:href="#g30" y="33167"/><use xlink:href="#g51" y="33184"/></g><g><use xlink:href="#g14" y="33524"/><use xlink:href="#g15" y="33541"/><use xlink:href="#g16" y="33558"/><use xlink:href="#g17" y="33575"/><use xlink:href="#g18" y="33592"/><use xlink:href="#g19" y="33609"/><use xlink:href="#g34" y="33626"/><use xlink:href="#g52" y="33643"/><use xlink:href="#g63" y="33660"/><use xlink:href="#g62" y="33677"/><use xlink:href="#g64" y="33694"/><use xlink:href="#g65" y="33711"/><rect x="120" y="33728" width="8" height="17" class="color6"/><use xlink:href="#g71" y="33728"/><use xlink:href="#g30" y="33745"/><use xlink:href="#g51" y="33762"/></g><g><use xlink:href="#g14" y="34102"/><use xlink:href="#g15" y="34119"/><use xlink:href="#g16" y="34136"/><use xlink:href="#g17" y="34153"/><use xlink:href="#g18" y="34170"/><use xlink:href="#g19" y="34187"/><use xlink:href="#g34" y="34204"/><use xlink:href="#g52" y="34221"/><use xlink:href="#g63" y="34238"/><use xlink:href="#g62" y="34255"/><use xlink:href="#g64" y="34272"/><use xlink:href="#g65" y="34289"/><rect x="128" y="34306" width="8" height="17" class="color6"/><use xlink:href="#g72" y="34306"/><use xlink:href="#g30" y="34323"/><use xlink:href="#g51" y="34340"/></g><g><use xlink:href="#g14" y="34680"/><use xlink:href="#g15" y="34697"/><use xlink:href="#g16" y="34714"/><use xlink:href="#g17" y="34731"/><use xlink:href="#g18" y="34748"/><use xlink:href="#g19" y="34765"/><use xlink:href="#g34" y="34782"/><use xlink:href="#g52" y="34799"/><use xlink:href="#g63" y="34816"/><use xlink:href="#g62" y="34833"/><use xlink:href="#g64" y="34850"/><use xlink:href="#g65" y="34867"/><rect x="136" y="34884" width="8" height="17" class="color6"/><use xlink:href="#g73" y="34884"/><use xlink:href="#g30" y="34901"/><use xlink:href="#g51" y="34918"/></g><g><use xlink:href="#g14" y="35258"/><use xlink:href="#g15" y="35275"/><use xlink:href="#g16" y="35292"/><use xlink:href="#g17" y="35309"/><use xlink:href="#g18" y="35326"/><use xlink:href="#g19" y="35343"/><use xlink:href="#g34" y="35360"/><use xlink:href="#g52" y="35377"/><use xlink:href="#g63" y="35394"/><use xlink:href="#g62" y="35411"/><use xlink:href="#g64" y="35428"/><use xlink:href="#g65" y="35445"/><rect x="144" y="35462" width="8" height="17" class="color6"/><use xlink:href="#g74" y="35462"/><use xlink:href="#g30" y="35479"/><use xlink:href="#g51" y="35496"/></g><g><use xlink:href="#g14" y="35836"/><use xlink:href="#g15" y="35853"/><use xlink:href="#g16" y="35870"/><use xlink:href="#g17" y="35887"/><use xlink:href="#g18" y="35904"/><use xlink:href="#g19" y="35921"/><use xlink:href="#g34" y="35938"/><use xlink:href="#g52" y="35955"/><use xlink:href="#g63" y="35972"/><use xlink:href="#g62" y="35989"/><use xlink:href="#g64" y="36006"/><use xlink:href="#g65" y="36023"/><use xlink:href="#g75" y="36040"/><rect x="0" y="36057" width="8" height="17" class="color6"/><use xlink:href="#g76" y="36057"/><use xlink:href="#g51" y="36074"/></g><g><use xlink:href="#g14" y="36414"/><use xlink:href="#g15" y="36431"/><use xlink:href="#g16" y="36448"/><use xlink:href="#g17" y="36465"/><use xlink:href="#g18" y="36482"/><use xlink:href="#g19" y="36499"/><use xlink:href="#g34" y="36516"/><use xlink:href="#g52" y="36533"/><use xlink:href="#g63" y="36550"/><use xlink:href="#g77" y="36567"/><rect x="0" y="36584" width="8" height="17" class="foreground"/><use xlink:href="#g61" y="36584"/><use xlink:href="#g49" y="36601"/><use xlink:href="#g50" y="36618"/><use xlink:href="#g30" y="36635"/><use xlink:href="#g51" y="36652"/></g><g><use xlink:href="#g14" y="36992"/><use xlink:href="#g15" y="37009"/><use xlink:href="#g16" y="37026"/><use xlink:href="#g17" y="37043"/><use xlink:href="#g18" y="37060"/><use xlink:href="#g19" y="37077"/><use xlink:href="#g78" y="37094"/><rect x="0" y="37111" width="8" height="17" class="color3"/><use xlink:href="#g79" y="37111"/><use xlink:href="#g47" y="37128"/><use xlink:href="#g62" y="37145"/><use xlink:href="#g50" y="37162"/><use xlink:href="#g49" y="37179"/><use xlink:href="#g50" y="37196"/><use xlink:href="#g30" y="37213"/><use xlink:href="#g51" y="37230"/></g><g><use xlink:href="#g14" y="37570"/><use xlink:href="#g15" y="37587"/><use xlink:href="#g16" y="37604"/><use xlink:href="#g17" y="37621"/><use xlink:href="#g18" y="37638"/><use xlink:href="#g19" y="37655"/><use xlink:href="#g78" y="37672"/><use xlink:href="#g80" y="37689"/><use xlink:href="#g63" y="37706"/><use xlink:href="#g77" y="37723"/><use xlink:href="#g50" y="37740"/><use xlink:href="#g81" y="37757"/><use xlink:href="#g50" y="37774"/><use xlink:href="#g82" y="37791"/><use xlink:href="#g83" y="37808"/><rect x="0" y="37825" width="8" height="17" class="foreground"/><use xlink:href="#g1" y="37825"/></g><g><use xlink:href="#g14" y="38148"/><use xlink:href="#g15" y="38165"/><use xlink:href="#g16" y="38182"/><use xlink:href="#g17" y="38199"/><use xlink:href="#g18" y="38216"/><use xlink:href="#g19" y="38233"/><use xlink:href="#g78" y="38250"/><use xlink:href="#g80" y="38267"/><use xlink:href="#g63" y="38284"/><use xlink:href="#g77" y="38301"/><use xlink:href="#g50" y="38318"/><use xlink:href="#g81" y="38335"/><use xlink:href="#g50" y="38352"/><use xlink:href="#g82" y="38369"/><use xlink:href="#g83" y="38386"/><use xlink:href="#g84" y="38403"/><rect x="0" y="38420" width="8" height="17" class="foreground"/><use xlink:href="#g1" y="38420"/></g><g><use xlink:href="#g14" y="38726"/><use xlink:href="#g15" y="38743"/><use xlink:href="#g16" y="38760"/><use xlink:href="#g17" y="38777"/><use xlink:href="#g18" y="38794"/><use xlink:href="#g19" y="38811"/><use xlink:href="#g78" y="38828"/><use xlink:href="#g80" y="38845"/><use xlink:href="#g63" y="38862"/><use xlink:href="#g77" y="38879"/><use xlink:href="#g50" y="38896"/><use xlink:href="#g81" y="38913"/><use xlink:href="#g50" y="38930"/><use xlink:href="#g82" y="38947"/><use xlink:href="#g83" y="38964"/><use xlink:href="#g84" y="38981"/><use xlink:href="#g85" y="38998"/><rect x="0" y="39015" width="8" height="17" class="foreground"/><use xlink:href="#g1" y="39015"/></g><g><use xlink:href="#g14" y="39304"/><use xlink:href="#g15" y="39321"/><use xlink:href="#g16" y="39338"/><use xlink:href="#g17" y="39355"/><use xlink:href="#g18" y="39372"/><use xlink:href="#g19" y="39389"/><use xlink:href="#g78" y="39406"/><use xlink:href="#g80" y="39423"/><use xlink:href="#g63" y="39440"/><use xlink:href="#g77" y="39457"/><use xlink:href="#g50" y="39474"/><use xlink:href="#g81" y="39491"/><use xlink:href="#g50" y="39508"/><use xlink:href="#g82" y="39525"/><use xlink:href="#g83" y="39542"/><use xlink:href="#g84" y="39559"/><use xlink:href="#g85" y="39576"/><use xlink:href="#g86" y="39593"/><rect x="0" y="39610" width="8" height="17" class="foreground"/><use xlink:href="#g1" y="39610"/></g><g><use xlink:href="#g14" y="39882"/><use xlink:href="#g15" y="39899"/><use xlink:href="#g16" y="39916"/><use xlink:href="#g17" y="39933"/><use xlink:href="#g18" y="39950"/><use xlink:href="#g19" y="39967"/><use xlink:href="#g78" y="39984"/><use xlink:href="#g80" y="40001"/><use xlink:href="#g63" y="40018"/><use xlink:href="#g77" y="40035"/><use xlink:href="#g50" y="40052"/><use xlink:href="#g81" y="40069"/><use xlink:href="#g50" y="40086"/><use xlink:href="#g82" y="40103"/><use xlink:href="#g83" y="40120"/><use xlink:href="#g84" y="40137"/><use xlink:href="#g85" y="40154"/><use xlink:href="#g86" y="40171"/><use xlink:href="#g87" y="40188"/><rect x="0" y="40205" width="8" height="17" class="foreground"/><use xlink:href="#g1" y="40205"/></g><g><use xlink:href="#g14" y="40460"/><use xlink:href="#g15" y="40477"/><use xlink:href="#g16" y="40494"/><use xlink:href="#g17" y="40511"/><use xlink:href="#g18" y="40528"/><use xlink:href="#g19" y="40545"/><use xlink:href="#g78" y="40562"/><use xlink:href="#g80" y="40579"/><use xlink:href="#g63" y="40596"/><use xlink:href="#g77" y="40613"/><use xlink:href="#g50" y="40630"/><use xlink:href="#g81" y="40647"/><use xlink:href="#g50" y="40664"/><use xlink:href="#g82" y="40681"/><use xlink:href="#g83" y="40698"/><use xlink:href="#g84" y="40715"/><use xlink:href="#g85" y="40732"/><use xlink:href="#g86" y="40749"/><use xlink:href="#g87" y="40766"/><rect x="336" y="40783" width="8" height="17" class="foreground"/><use xlink:href="#g88" y="40783"/></g><g><use xlink:href="#g14" y="41038"/><use xlink:href="#g15" y="41055"/><use xlink:href="#g16" y="41072"/><use xlink:href="#g17" y="41089"/><use xlink:href="#g18" y="41106"/><use xlink:href="#g19" y="41123"/><use xlink:href="#g78" y="41140"/><use xlink:href="#g80" y="41157"/><use xlink:href="#g63" y="41174"/><use xlink:href="#g77" y="41191"/><use xlink:href="#g50" y="41208"/><use xlink:href="#g81" y="41225"/><use xlink:href="#g50" y="41242"/><use xlink:href="#g82" y="41259"/><use xlink:href="#g83" y="41276"/><use xlink:href="#g84" y="41293"/><use xlink:href="#g85" y="41310"/><use xlink:href="#g86" y="41327"/><use xlink:href="#g87" y="41344"/><use xlink:href="#g89" y="41361"/><rect x="0" y="41378" width="8" height="17" class="foreground"/><use xlink:href="#g1" y="41378"/></g><g><use xlink:href="#g14" y="41616"/><use xlink:href="#g15" y="41633"/><use xlink:href="#g16" y="41650"/><use xlink:href="#g17" y="41667"/><use xlink:href="#g18" y="41684"/><use xlink:href="#g19" y="41701"/><use xlink:href="#g78" y="41718"/><use xlink:href="#g80" y="41735"/><use xlink:href="#g63" y="41752"/><use xlink:href="#g77" y="41769"/><use xlink:href="#g50" y="41786"/><use xlink:href="#g81" y="41803"/><use xlink:href="#g50" y="41820"/><use xlink:href="#g82" y="41837"/><use xlink:href="#g83" y="41854"/><use xlink:href="#g84" y="41871"/><use xlink:href="#g85" y="41888"/><use xlink:href="#g86" y="41905"/><use xlink:href="#g87" y="41922"/><use xlink:href="#g89" y="41939"/><use xlink:href="#g90" y="41956"/><rect x="0" y="41973" width="8" height="17" class="foreground"/><use xlink:href="#g1" y="41973"/></g><g><use xlink:href="#g14" y="42194"/><use xlink:href="#g15" y="42211"/><use xlink:href="#g16" y="42228"/><use xlink:href="#g17" y="42245"/><use xlink:href="#g18" y="42262"/><use xlink:href="#g19" y="42279"/><use xlink:href="#g78" y="42296"/><use xlink:href="#g80" y="42313"/><use xlink:href="#g63" y="42330"/><use xlink:href="#g77" y="42347"/><use xlink:href="#g50" y="42364"/><use xlink:href="#g81" y="42381"/><use xlink:href="#g50" y="42398"/><use xlink:href="#g82" y="42415"/><use xlink:href="#g83" y="42432"/><use xlink:href="#g84" y="42449"/><use xlink:href="#g85" y="42466"/><use xlink:href="#g86" y="42483"/><use xlink:href="#g87" y="42500"/><use xlink:href="#g89" y="42517"/><use xlink:href="#g90" y="42534"/><use xlink:href="#g91" y="42551"/><rect x="0" y="42568" width="8" height="17" class="foreground"/><use xlink:href="#g1" y="42568"/></g><g><use xlink:href="#g14" y="42772"/><use xlink:href="#g15" y="42789"/><use xlink:href="#g16" y="42806"/><use xlink:href="#g17" y="42823"/><use xlink:href="#g18" y="42840"/><use xlink:href="#g19" y="42857"/><use xlink:href="#g78" y="42874"/><use xlink:href="#g80" y="42891"/><use xlink:href="#g63" y="42908"/><use xlink:href="#g77" y="42925"/><use xlink:href="#g50" y="42942"/><use xlink:href="#g81" y="42959"/><use xlink:href="#g50" y="42976"/><use xlink:href="#g82" y="42993"/><use xlink:href="#g83" y="43010"/><use xlink:href="#g84" y="43027"/><use xlink:href="#g85" y="43044"/><use xlink:href="#g86" y="43061"/><use xlink:href="#g87" y="43078"/><use xlink:href="#g89" y="43095"/><use xlink:href="#g90" y="43112"/><use xlink:href="#g91" y="43129"/><rect x="256" y="43146" width="8" height="17" class="foreground"/><use xlink:href="#g92" y="43146"/></g><g><use xlink:href="#g14" y="43350"/><use xlink:href="#g15" y="43367"/><use xlink:href="#g16" y="43384"/><use xlink:href="#g17" y="43401"/><use xlink:href="#g18" y="43418"/><use xlink:href="#g19" y="43435"/><use xlink:href="#g78" y="43452"/><use xlink:href="#g80" y="43469"/><use xlink:href="#g63" y="43486"/><use xlink:href="#g77" y="43503"/><use xlink:href="#g50" y="43520"/><use xlink:href="#g81" y="43537"/><use xlink:href="#g50" y="43554"/><use xlink:href="#g82" y="43571"/><use xlink:href="#g83" y="43588"/><use xlink:href="#g84" y="43605"/><use xlink:href="#g85" y="43622"/><use xlink:href="#g86" y="43639"/><use xlink:href="#g87" y="43656"/><use xlink:href="#g89" y="43673"/><use xlink:href="#g90" y="43690"/><use xlink:href="#g91" y="43707"/><use xlink:href="#g93" y="43724"/><rect x="0" y="43741" width="8" height="17" class="foreground"/><use xlink:href="#g1" y="43741"/></g><g><use xlink:href="#g14" y="43928"/><use xlink:href="#g15" y="43945"/><use xlink:href="#g16" y="43962"/><use xlink:href="#g17" y="43979"/><use xlink:href="#g18" y="43996"/><use xlink:href="#g19" y="44013"/><use xlink:href="#g78" y="44030"/><use xlink:href="#g80" y="44047"/><use xlink:href="#g63" y="44064"/><use xlink:href="#g77" y="44081"/><use xlink:href="#g50" y="44098"/><use xlink:href="#g81" y="44115"/><use xlink:href="#g50" y="44132"/><use xlink:href="#g82" y="44149"/><use xlink:href="#g83" y="44166"/><use xlink:href="#g84" y="44183"/><use xlink:href="#g85" y="44200"/><use xlink:href="#g86" y="44217"/><use xlink:href="#g87" y="44234"/><use xlink:href="#g89" y="44251"/><use xlink:href="#g90" y="44268"/><use xlink:href="#g91" y="44285"/><use xlink:href="#g93" y="44302"/><rect x="0" y="44336" width="8" height="17" class="foreground"/><use xlink:href="#g1" y="44336"/></g><g><use xlink:href="#g14" y="44506"/><use xlink:href="#g15" y="44523"/><use xlink:href="#g16" y="44540"/><use xlink:href="#g17" y="44557"/><use xlink:href="#g18" y="44574"/><use xlink:href="#g19" y="44591"/><use xlink:href="#g78" y="44608"/><use xlink:href="#g80" y="44625"/><use xlink:href="#g63" y="44642"/><use xlink:href="#g77" y="44659"/><use xlink:href="#g50" y="44676"/><use xlink:href="#g81" y="44693"/><use xlink:href="#g50" y="44710"/><use xlink:href="#g82" y="44727"/><use xlink:href="#g83" y="44744"/><use xlink:href="#g84" y="44761"/><use xlink:href="#g85" y="44778"/><use xlink:href="#g86" y="44795"/><use xlink:href="#g87" y="44812"/><use xlink:href="#g89" y="44829"/><use xlink:href="#g90" y="44846"/><use xlink:href="#g91" y="44863"/><use xlink:href="#g93" y="44880"/><use xlink:href="#g94" y="44914"/><rect x="0" y="44931" width="8" height="17" class="color3"/><use xlink:href="#g1" y="44931"/></g><g><use xlink:href="#g14" y="45084"/><use xlink:href="#g15" y="45101"/><use xlink:href="#g16" y="45118"/><use xlink:href="#g17" y="45135"/><use xlink:href="#g18" y="45152"/><use xlink:href="#g19" y="45169"/><use xlink:href="#g78" y="45186"/><use xlink:href="#g80" y="45203"/><use xlink:href="#g63" y="45220"/><use xlink:href="#g77" y="45237"/><use xlink:href="#g50" y="45254"/><use xlink:href="#g81" y="45271"/><use xlink:href="#g50" y="45288"/><use xlink:href="#g82" y="45305"/><use xlink:href="#g83" y="45322"/><use xlink:href="#g84" y="45339"/><use xlink:href="#g85" y="45356"/><use xlink:href="#g86" y="45373"/><use xlink:href="#g87" y="45390"/><use xlink:href="#g89" y="45407"/><use xlink:href="#g90" y="45424"/><use xlink:href="#g91" y="45441"/><use xlink:href="#g93" y="45458"/><use xlink:href="#g94" y="45492"/><rect x="0" y="45509" width="8" height="17" class="color4"/><use xlink:href="#g95" y="45509"/></g><g><use xlink:href="#g14" y="45662"/><use xlink:href="#g15" y="45679"/><use xlink:href="#g16" y="45696"/><use xlink:href="#g17" y="45713"/><use xlink:href="#g18" y="45730"/><use xlink:href="#g19" y="45747"/><use xlink:href="#g78" y="45764"/><use xlink:href="#g80" y="45781"/><use xlink:href="#g63" y="45798"/><use xlink:href="#g77" y="45815"/><use xlink:href="#g50" y="45832"/><use xlink:href="#g81" y="45849"/><use xlink:href="#g50" y="45866"/><use xlink:href="#g82" y="45883"/><use xlink:href="#g83" y="45900"/><use xlink:href="#g84" y="45917"/><use xlink:href="#g85" y="45934"/><use xlink:href="#g86" y="45951"/><use xlink:href="#g87" y="45968"/><use xlink:href="#g89" y="45985"/><use xlink:href="#g90" y="46002"/><use xlink:href="#g91" y="46019"/><use xlink:href="#g93" y="46036"/><use xlink:href="#g94" y="46070"/><rect x="0" y="46087" width="8" height="17" class="color4"/><use xlink:href="#g96" y="46087"/></g><g><use xlink:href="#g14" y="46240"/><use xlink:href="#g15" y="46257"/><use xlink:href="#g16" y="46274"/><use xlink:href="#g17" y="46291"/><use xlink:href="#g18" y="46308"/><use xlink:href="#g19" y="46325"/><use xlink:href="#g78" y="46342"/><use xlink:href="#g80" y="46359"/><use xlink:href="#g63" y="46376"/><use xlink:href="#g77" y="46393"/><use xlink:href="#g50" y="46410"/><use xlink:href="#g81" y="46427"/><use xlink:href="#g50" y="46444"/><use xlink:href="#g82" y="46461"/><use xlink:href="#g83" y="46478"/><use xlink:href="#g84" y="46495"/><use xlink:href="#g85" y="46512"/><use xlink:href="#g86" y="46529"/><use xlink:href="#g87" y="46546"/><use xlink:href="#g89" y="46563"/><use xlink:href="#g90" y="46580"/><use xlink:href="#g91" y="46597"/><use xlink:href="#g93" y="46614"/><use xlink:href="#g94" y="46648"/><rect x="0" y="46665" width="8" height="17" class="color4"/><use xlink:href="#g97" y="46665"/></g><g><use xlink:href="#g14" y="46818"/><use xlink:href="#g15" y="46835"/><use xlink:href="#g16" y="46852"/><use xlink:href="#g17" y="46869"/><use xlink:href="#g18" y="46886"/><use xlink:href="#g19" y="46903"/><use xlink:href="#g78" y="46920"/><use xlink:href="#g80" y="46937"/><use xlink:href="#g63" y="46954"/><use xlink:href="#g77" y="46971"/><use xlink:href="#g50" y="46988"/><use xlink:href="#g81" y="47005"/><use xlink:href="#g50" y="47022"/><use xlink:href="#g82" y="47039"/><use xlink:href="#g83" y="47056"/><use xlink:href="#g84" y="47073"/><use xlink:href="#g85" y="47090"/><use xlink:href="#g86" y="47107"/><use xlink:href="#g87" y="47124"/><use xlink:href="#g89" y="47141"/><use xlink:href="#g90" y="47158"/><use xlink:href="#g91" y="47175"/><use xlink:href="#g93" y="47192"/><use xlink:href="#g94" y="47226"/><rect x="0" y="47243" width="8" height="17" class="color4"/><use xlink:href="#g97" y="47243"/></g><g><use xlink:href="#g14" y="47396"/><use xlink:href="#g15" y="47413"/><use xlink:href="#g16" y="47430"/><use xlink:href="#g17" y="47447"/><use xlink:href="#g18" y="47464"/><use xlink:href="#g19" y="47481"/><use xlink:href="#g78" y="47498"/><use xlink:href="#g80" y="47515"/><use xlink:href="#g63" y="47532"/><use xlink:href="#g77" y="47549"/><use xlink:href="#g50" y="47566"/><use xlink:href="#g81" y="47583"/><use xlink:href="#g50" y="47600"/><use xlink:href="#g82" y="47617"/><use xlink:href="#g83" y="47634"/><use xlink:href="#g84" y="47651"/><use xlink:href="#g85" y="47668"/><use xlink:href="#g86" y="47685"/><use xlink:href="#g87" y="47702"/><use xlink:href="#g89" y="47719"/><use xlink:href="#g90" y="47736"/><use xlink:href="#g91" y="47753"/><use xlink:href="#g93" y="47770"/><use xlink:href="#g94" y="47804"/><rect x="0" y="47821" width="8" height="17" class="color4"/><use xlink:href="#g97" y="47821"/></g><g><use xlink:href="#g14" y="47974"/><use xlink:href="#g15" y="47991"/><use xlink:href="#g16" y="48008"/><use xlink:href="#g17" y="48025"/><use xlink:href="#g18" y="48042"/><use xlink:href="#g19" y="48059"/><use xlink:href="#g78" y="48076"/><use xlink:href="#g80" y="48093"/><use xlink:href="#g63" y="48110"/><use xlink:href="#g77" y="48127"/><use xlink:href="#g50" y="48144"/><use xlink:href="#g81" y="48161"/><use xlink:href="#g50" y="48178"/><use xlink:href="#g82" y="48195"/><use xlink:href="#g83" y="48212"/><use xlink:href="#g84" y="48229"/><use xlink:href="#g85" y="48246"/><use xlink:href="#g86" y="48263"/><use xlink:href="#g87" y="48280"/><use xlink:href="#g89" y="48297"/><use xlink:href="#g90" y="48314"/><use xlink:href="#g91" y="48331"/><use xlink:href="#g93" y="48348"/><use xlink:href="#g94" y="48382"/><use xlink:href="#g98" y="48399"/><rect x="0" y="48416" width="8" height="17" class="foreground"/><use xlink:href="#g1" y="48416"/></g><g><use xlink:href="#g14" y="48552"/><use xlink:href="#g15" y="48569"/><use xlink:href="#g16" y="48586"/><use xlink:href="#g17" y="48603"/><use xlink:href="#g18" y="48620"/><use xlink:href="#g19" y="48637"/><use xlink:href="#g78" y="48654"/><use xlink:href="#g80" y="48671"/><use xlink:href="#g63" y="48688"/><use xlink:href="#g77" y="48705"/><use xlink:href="#g50" y="48722"/><use xlink:href="#g81" y="48739"/><use xlink:href="#g50" y="48756"/><use xlink:href="#g82" y="48773"/><use xlink:href="#g83" y="48790"/><use xlink:href="#g84" y="48807"/><use xlink:href="#g85" y="48824"/><use xlink:href="#g86" y="48841"/><use xlink:href="#g87" y="48858"/><use xlink:href="#g89" y="48875"/><use xlink:href="#g90" y="48892"/><use xlink:href="#g91" y="48909"/><use xlink:href="#g93" y="48926"/><use xlink:href="#g94" y="48960"/><use xlink:href="#g98" y="48977"/><use xlink:href="#g99" y="49011"/><rect x="0" y="49028" width="8" height="17" class="color3"/><use xlink:href="#g1" y="49028"/></g><g><use xlink:href="#g14" y="49130"/><use xlink:href="#g15" y="49147"/><use xlink:href="#g16" y="49164"/><use xlink:href="#g17" y="49181"/><use xlink:href="#g18" y="49198"/><use xlink:href="#g19" y="49215"/><use xlink:href="#g78" y="49232"/><use xlink:href="#g80" y="49249"/><use xlink:href="#g63" y="49266"/><use xlink:href="#g77" y="49283"/><use xlink:href="#g50" y="49300"/><use xlink:href="#g81" y="49317"/><use xlink:href="#g50" y="49334"/><use xlink:href="#g82" y="49351"/><use xlink:href="#g83" y="49368"/><use xlink:href="#g84" y="49385"/><use xlink:href="#g85" y="49402"/><use xlink:href="#g86" y="49419"/><use xlink:href="#g87" y="49436"/><use xlink:href="#g89" y="49453"/><use xlink:href="#g90" y="49470"/><use xlink:href="#g91" y="49487"/><use xlink:href="#g93" y="49504"/><use xlink:href="#g94" y="49538"/><use xlink:href="#g98" y="49555"/><use xlink:href="#g99" y="49589"/><use xlink:href="#g100" y="49623"/><rect x="0" y="49657" width="8" height="17" class="foreground"/><use xlink:href="#g1" y="49657"/></g><g><use xlink:href="#g14" y="49708"/><use xlink:href="#g15" y="49725"/><use xlink:href="#g16" y="49742"/><use xlink:href="#g17" y="49759"/><use xlink:href="#g18" y="49776"/><use xlink:href="#g19" y="49793"/><use xlink:href="#g78" y="49810"/><use xlink:href="#g80" y="49827"/><use xlink:href="#g63" y="49844"/><use xlink:href="#g77" y="49861"/><use xlink:href="#g50" y="49878"/><use xlink:href="#g81" y="49895"/><use xlink:href="#g50" y="49912"/><use xlink:href="#g82" y="49929"/><use xlink:href="#g83" y="49946"/><use xlink:href="#g84" y="49963"/><use xlink:href="#g85" y="49980"/><use xlink:href="#g86" y="49997"/><use xlink:href="#g87" y="50014"/><use xlink:href="#g89" y="50031"/><use xlink:href="#g90" y="50048"/><use xlink:href="#g91" y="50065"/><use xlink:href="#g93" y="50082"/><use xlink:href="#g94" y="50116"/><use xlink:href="#g98" y="50133"/><use xlink:href="#g99" y="50167"/><use xlink:href="#g100" y="50201"/><rect x="144" y="50235" width="8" height="17" class="foreground"/><use xlink:href="#g2" y="50235"/></g><g><use xlink:href="#g14" y="50286"/><use xlink:href="#g15" y="50303"/><use xlink:href="#g16" y="50320"/><use xlink:href="#g17" y="50337"/><use xlink:href="#g18" y="50354"/><use xlink:href="#g19" y="50371"/><use xlink:href="#g78" y="50388"/><use xlink:href="#g80" y="50405"/><use xlink:href="#g63" y="50422"/><use xlink:href="#g77" y="50439"/><use xlink:href="#g50" y="50456"/><use xlink:href="#g81" y="50473"/><use xlink:href="#g50" y="50490"/><use xlink:href="#g82" y="50507"/><use xlink:href="#g83" y="50524"/><use xlink:href="#g84" y="50541"/><use xlink:href="#g85" y="50558"/><use xlink:href="#g86" y="50575"/><use xlink:href="#g87" y="50592"/><use xlink:href="#g89" y="50609"/><use xlink:href="#g90" y="50626"/><use xlink:href="#g91" y="50643"/><use xlink:href="#g93" y="50660"/><use xlink:href="#g94" y="50694"/><use xlink:href="#g98" y="50711"/><use xlink:href="#g99" y="50745"/><use xlink:href="#g100" y="50779"/><rect x="152" y="50813" width="8" height="17" class="foreground"/><use xlink:href="#g101" y="50813"/></g><g><use xlink:href="#g14" y="50864"/><use xlink:href="#g15" y="50881"/><use xlink:href="#g16" y="50898"/><use xlink:href="#g17" y="50915"/><use xlink:href="#g18" y="50932"/><use xlink:href="#g19" y="50949"/><use xlink:href="#g78" y="50966"/><use xlink:href="#g80" y="50983"/><use xlink:href="#g63" y="51000"/><use xlink:href="#g77" y="51017"/><use xlink:href="#g50" y="51034"/><use xlink:href="#g81" y="51051"/><use xlink:href="#g50" y="51068"/><use xlink:href="#g82" y="51085"/><use xlink:href="#g83" y="51102"/><use xlink:href="#g84" y="51119"/><use xlink:href="#g85" y="51136"/><use xlink:href="#g86" y="51153"/><use xlink:href="#g87" y="51170"/><use xlink:href="#g89" y="51187"/><use xlink:href="#g90" y="51204"/><use xlink:href="#g91" y="51221"/><use xlink:href="#g93" y="51238"/><use xlink:href="#g94" y="51272"/><use xlink:href="#g98" y="51289"/><use xlink:href="#g99" y="51323"/><use xlink:href="#g100" y="51357"/><rect x="160" y="51391" width="8" height="17" class="foreground"/><use xlink:href="#g102" y="51391"/></g><g><use xlink:href="#g14" y="51442"/><use xlink:href="#g15" y="51459"/><use xlink:href="#g16" y="51476"/><use xlink:href="#g17" y="51493"/><use xlink:href="#g18" y="51510"/><use xlink:href="#g19" y="51527"/><use xlink:href="#g78" y="51544"/><use xlink:href="#g80" y="51561"/><use xlink:href="#g63" y="51578"/><use xlink:href="#g77" y="51595"/><use xlink:href="#g50" y="51612"/><use xlink:href="#g81" y="51629"/><use xlink:href="#g50" y="51646"/><use xlink:href="#g82" y="51663"/><use xlink:href="#g83" y="51680"/><use xlink:href="#g84" y="51697"/><use xlink:href="#g85" y="51714"/><use xlink:href="#g86" y="51731"/><use xlink:href="#g87" y="51748"/><use xlink:href="#g89" y="51765"/><use xlink:href="#g90" y="51782"/><use xlink:href="#g91" y="51799"/><use xlink:href="#g93" y="51816"/><use xlink:href="#g94" y="51850"/><use xlink:href="#g98" y="51867"/><use xlink:href="#g99" y="51901"/><use xlink:href="#g100" y="51935"/><rect x="168" y="51969" width="8" height="17" class="foreground"/><use xlink:href="#g103" y="51969"/></g><g><use xlink:href="#g14" y="52020"/><use xlink:href="#g15" y="52037"/><use xlink:href="#g16" y="52054"/><use xlink:href="#g17" y="52071"/><use xlink:href="#g18" y="52088"/><use xlink:href="#g19" y="52105"/><use xlink:href="#g78" y="52122"/><use xlink:href="#g80" y="52139"/><use xlink:href="#g63" y="52156"/><use xlink:href="#g77" y="52173"/><use xlink:href="#g50" y="52190"/><use xlink:href="#g81" y="52207"/><use xlink:href="#g50" y="52224"/><use xlink:href="#g82" y="52241"/><use xlink:href="#g83" y="52258"/><use xlink:href="#g84" y="52275"/><use xlink:href="#g85" y="52292"/><use xlink:href="#g86" y="52309"/><use xlink:href="#g87" y="52326"/><use xlink:href="#g89" y="52343"/><use xlink:href="#g90" y="52360"/><use xlink:href="#g91" y="52377"/><use xlink:href="#g93" y="52394"/><use xlink:href="#g94" y="52428"/><use xlink:href="#g98" y="52445"/><use xlink:href="#g99" y="52479"/><use xlink:href="#g100" y="52513"/><rect x="176" y="52547" width="8" height="17" class="foreground"/><use xlink:href="#g104" y="52547"/></g><g><use xlink:href="#g14" y="52598"/><use xlink:href="#g15" y="52615"/><use xlink:href="#g16" y="52632"/><use xlink:href="#g17" y="52649"/><use xlink:href="#g18" y="52666"/><use xlink:href="#g19" y="52683"/><use xlink:href="#g78" y="52700"/><use xlink:href="#g80" y="52717"/><use xlink:href="#g63" y="52734"/><use xlink:href="#g77" y="52751"/><use xlink:href="#g50" y="52768"/><use xlink:href="#g81" y="52785"/><use xlink:href="#g50" y="52802"/><use xlink:href="#g82" y="52819"/><use xlink:href="#g83" y="52836"/><use xlink:href="#g84" y="52853"/><use xlink:href="#g85" y="52870"/><use xlink:href="#g86" y="52887"/><use xlink:href="#g87" y="52904"/><use xlink:href="#g89" y="52921"/><use xlink:href="#g90" y="52938"/><use xlink:href="#g91" y="52955"/><use xlink:href="#g93" y="52972"/><use xlink:href="#g94" y="53006"/><use xlink:href="#g98" y="53023"/><use xlink:href="#g99" y="53057"/><use xlink:href="#g100" y="53091"/><use xlink:href="#g105" y="53125"/><rect x="0" y="53142" width="8" height="17" class="foreground"/><use xlink:href="#g1" y="53142"/></g><g><use xlink:href="#g15" y="53176"/><use xlink:href="#g16" y="53193"/><use xlink:href="#g17" y="53210"/><use xlink:href="#g18" y="53227"/><use xlink:href="#g19" y="53244"/><use xlink:href="#g78" y="53261"/><use xlink:href="#g80" y="53278"/><use xlink:href="#g63" y="53295"/><use xlink:href="#g77" y="53312"/><use xlink:href="#g50" y="53329"/><use xlink:href="#g81" y="53346"/><use xlink:href="#g50" y="53363"/><use xlink:href="#g82" y="53380"/><use xlink:href="#g83" y="53397"/><use xlink:href="#g84" y="53414"/><use xlink:href="#g85" y="53431"/><use xlink:href="#g86" y="53448"/><use xlink:href="#g87" y="53465"/><use xlink:href="#g89" y="53482"/><use xlink:href="#g90" y="53499"/><use xlink:href="#g91" y="53516"/><use xlink:href="#g93" y="53533"/><use xlink:href="#g94" y="53567"/><use xlink:href="#g98" y="53584"/><use xlink:href="#g99" y="53618"/><use xlink:href="#g100" y="53652"/><use xlink:href="#g105" y="53686"/><use xlink:href="#g106" y="53703"/><rect x="0" y="53720" width="8" height="17" class="foreground"/><use xlink:href="#g1" y="53720"/></g></g></svg>
</svg>gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-51711375862673633722023-04-07T09:31:00.003-07:002024-03-08T18:33:33.506-08:00PostgreSQL Upgrade - Fedora 38<p>Fedora 38 will upgrade your PostgreSQL database from 14.7-~ to 15.1-2.<br />
<br />
Since this is a major upgrade it will require that you upgrade your database.<br />
<br />
Here is how to do it:<br />
</p><ol><li>Install the upgrade utilities: <i><b>dnf install postgresql-upgrade</b></i></li><li>Become user postgres: <i><b>sudo su - postgres</b></i></li><li>Rename the data directory: <i><b>mv /var/lib/pgsql/data/ /var/lib/pgsql/data_14.7/</b></i></li><li>As root, initialize your 15.1 database: <b> <i>sudo postgresql-setup --initdb --unit postgresql</i></b></li><li>As user postgres, Copy your pg_hba.conf: <i><b>cp /var/lib/pgsql/data_14.7/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf</b></i></li><li>To avoid any potential password issues, temporarily change "md5" to "trust" in both pg_hba.conf files</li><li>Run the upgrade process: <i><b>pg_upgrade -b /usr/lib64/pgsql/postgresql-14/bin/ -B /usr/bin/ -d data_14.7/ -D data</b></i></li><li>Change "trust" to md5" if you changed in step 6 <b><br /></b></li><li>Enable your postgresql.service: <i><b>sudo systemctl enable postgresql.service</b></i></li><li>Start your postgresql.service: <i> <b>sudo systemctl start postgresql.service</b></i></li><li>Run the analyse_new_cluster.sh script as suggested</li><li>Run the delete_old_cluster.sh script as suggested</li></ol>
<div>
Note: <b>When running commands as the postgres user, it is
assumed you are running them from the postgres user $home directory.</b>
This will be your location after you enter the command in step 2. If
you for some reason change to another directory from this userid, just
remember to enter: <b>cd $home </b>before entering any postgresql
commands - otherwise you may not be able to execute the desired command,
or may receive a permission error. <b>In steps 4, 9 and 10 you must issue the commands as root.</b> If you don't have sudoers setup for the postgres user, it will fail. In this case just issue the "su" command to enter root without "sudo". Remember to issue "exit" to return to the user "postgres".<br /></div>gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-41610080355252786712022-05-02T07:10:00.001-07:002022-05-02T08:46:39.052-07:00PostgreSQL Upgrade - Fedora 36<p> Fedora 36 will upgrade your PostgreSQL database from 13.4~ to 14.1-3.<br />
<br />
Since this is a major upgrade it will require that you upgrade your database.<br />
<br />
Here is how to do it:<br />
</p><ol><li>Install the upgrade utilities: <i><b>dnf install postgresql-upgrade</b></i></li><li>Become user postgres: <i><b>sudo su - postgres</b></i></li><li>Rename the data directory: <i><b>mv /var/lib/pgsql/data/ /var/lib/pgsql/data_13.4/</b></i></li><li>As root, initialize your 14.1 database: <b> <i>sudo postgresql-setup --initdb --unit postgresql</i></b></li><li>As user postgres, Copy your pg_hba.conf: <i><b>cp /var/lib/pgsql/data_13.4/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf</b></i></li><li>To avoid any potential password issues, temporarily change "md5" to "trust" in both pg_hba.conf files</li><li>Run the upgrade process: <i><b>pg_upgrade -b /usr/lib64/pgsql/postgresql-13/bin/ -B /usr/bin/ -d data_13.4/ -D data</b></i></li><li>Change "trust" to md5" if you changed in step 6 <b><br /></b></li><li>Enable your postgresql.service: <i><b>sudo systemctl enable postgresql.service</b></i></li><li>Start your postgresql.service: <i> <b>sudo systemctl start postgresql.service</b></i></li><li>Run the analyse_new_cluster.sh script as suggested</li><li>Run the delete_old_cluster.sh script as suggested</li></ol>
<div>
Note: <b>When running commands as the postgres user, it is
assumed you are running them from the postgres user $home directory.</b>
This will be your location after you enter the command in step 2. If
you for some reason change to another directory from this userid, just
remember to enter: <b>cd $home </b>before entering any postgresql
commands - otherwise you may not be able to execute the desired command,
or may receive a permission error.</div>gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-26553470819325967792021-04-24T20:40:00.002-07:002021-04-24T20:40:49.098-07:00PostgreSQL Upgrade - Fedora 34<p> Fedora 33 will upgrade your PostgreSQL database from 12.6~ to 13.2-6.<br />
<br />
Since this is a major upgrade it will require that you upgrade your database.<br />
<br />
Here is how to do it:<br />
</p><ol><li>Install the upgrade utilities: <i><b>dnf install postgresql-upgrade</b></i></li><li>Become user postgres: <i><b>sudo su - postgres</b></i></li><li>Rename the data directory: <i><b>mv /var/lib/pgsql/data/ /var/lib/pgsql/data_12.6/</b></i></li><li>As root, initialize your 13.2 database: <b> <i>sudo postgresql-setup --initdb --unit postgresql</i></b></li><li>As user postgres, Copy your pg_hba.conf: <i><b>cp /var/lib/pgsql/data_12.6/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf</b></i></li><li>To avoid any potential password issues, temporarily change "md5" to "trust" in both pg_hba.conf files</li><li>Run the upgrade process: <i><b>pg_upgrade -b /usr/lib64/pgsql/postgresql-12/bin/ -B /usr/bin/ -d data_12.6/ -D data</b></i></li><li>Change "trust" to md5" if you changed in step 6 <b><br /></b></li><li>Enable your postgresql.service: <i><b>sudo systemctl enable postgresql.service</b></i></li><li>Start your postgresql.service: <i> <b>sudo systemctl start postgresql.service</b></i></li><li>Run the analyse_new_cluster.sh script as suggested</li><li>Run the delete_old_cluster.sh script as suggested</li></ol>
<div>
Note: When running commands as the postgres user, it is
assumed you are running them from the postgres user $home directory.
This will be your location after you enter the command in step 2. If
you for some reason change to another directory from this userid, just
remember to enter: <b>cd $home </b>before entering any postgresql
commands - otherwise you may not be able to execute the desired command,
or may receive a permission error.</div>gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com1tag:blogger.com,1999:blog-2867561727279143210.post-8589325880542689812020-04-29T10:46:00.002-07:002020-04-29T11:05:42.748-07:00PostgreSQL Upgrade - Fedora 32Fedora 30 will upgrade your PostgreSQL database from 11.7~ to 12.2-1.<br />
<br />
Since this is a major upgrade it will require that you upgrade your database.<br />
<br />
Here is how to do it:<br />
<ol>
<li>Install the upgrade utilities: <i><b>dnf install postgresql-upgrade</b></i></li>
<li>Become user postgres: <i><b>sudo su - postgres</b></i></li>
<li>Rename the data directory: <i><b>mv /var/lib/pgsql/data/ /var/lib/pgsql/data_11.7/</b></i></li>
<li>As root, initialize your 12.2 database: <b> <i>sudo postgresql-setup --initdb --unit postgresql</i></b></li>
<li>As user postgres, Copy your pg_hba.conf: <i><b>cp /var/lib/pgsql/data_11.7/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf</b></i></li>
<li>To avoid any potential password issues, temporarily change "md5" to "trust" in both pg_hba.conf files</li>
<li>Run the upgrade process: <i><b>pg_upgrade -b /usr/lib64/pgsql/postgresql-11/bin/ -B /usr/bin/ -d data_11.7/ -D data</b></i></li>
<li>Change "trust" to md5" if you changed in step 6 <b><br /></b></li>
<li>Enable your postgresql.service: <i><b>sudo systemctl enable postgresql.service</b></i></li>
<li>Start your postgresql.service: <i> <b>sudo systemctl start postgresql.service</b></i></li>
<li>Run the analyse_new_cluster.sh script as suggested</li>
<li>Run the delete_old_cluster.sh script as suggested</li>
</ol>
<div>
Note: When running commands as the postgres user, it is
assumed you are running them from the postgres user $home directory.
This will be your location after you enter the command in step 2. If
you for some reason change to another directory from this userid, just
remember to enter: <b>cd $home </b>before entering any postgresql
commands - otherwise you may not be able to execute the desired command,
or may receive a permission error.</div>
gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-67541330261183176222019-04-30T11:32:00.000-07:002019-04-30T11:32:04.623-07:00PostgreSQL Upgrade - Fedora 30Fedora 30 will upgrade your PostgreSQL database from 10.7~ to 11.2-3.<br />
<br />
Since this is a major upgrade it will require that you upgrade your database.<br />
<br />
Here is how to do it:<br />
<ol>
<li>Install the upgrade utilities: <i><b>dnf install postgresql-upgrade</b></i></li>
<li>Become user postgres: <i><b>sudo su - postgres</b></i></li>
<li>Rename the data directory: <i><b>mv /var/lib/pgsql/data/ /var/lib/pgsql/data_10.7/</b></i></li>
<li>As root, initialize your 11.2 database: <b> <i>sudo postgresql-setup initdb</i></b></li>
<li>As user postgres, Copy your pg_hba.conf: <i><b>cp /var/lib/pgsql/data_10.7/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf</b></i></li>
<li>To avoid any potential password issues, temporarily change "md5" to "trust" in both pg_hba.conf files</li>
<li>Run the upgrade process: <i><b>pg_upgrade -b /usr/lib64/pgsql/postgresql-10/bin/ -B /usr/bin/ -d data_10.7/ -D data</b></i></li>
<li>Change "trust" to md5" if you changed in step 6 <b><br /></b></li>
<li>Enable your postgresql.service: <i><b>sudo systemctl enable postgresql.service</b></i></li>
<li>Start your postgresql.service: <i> <b>sudo systemctl start postgresql.service</b></i></li>
<li>Run the analyse_new_cluster.sh script as suggested</li>
<li>Run the delete_old_cluster.sh script as suggested</li>
</ol>
<div>
Note: When running commands as the postgres user, it is assumed you are running them from the postgres user $home directory. This will be your location after you enter the command in step 2. If you for some reason change to another directory from this userid, just remember to enter: <b>cd $home </b>before entering any postgresql commands - otherwise you may not be able to execute the desired command, or may receive a permission error.</div>
gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-18331073056097171322018-05-02T08:10:00.001-07:002018-05-02T09:15:23.911-07:00PostgreSQL Upgrade - Fedora 28Fedora 28 will upgrade your PostgreSQL database from 9.6.~ to 10.3-4.<br />
<br />
Since this is a major upgrade it will require that you upgrade your database.<br />
<br />
Here is how to do it:<br />
<ol>
<li>Install the upgrade utilities: <i><b>dnf install postgresql-upgrade</b></i></li>
<li>Become user postgres: <i><b>sudo su - postgres</b></i></li>
<li>Rename the data directory: <i><b>mv /var/lib/pgsql/data/ /var/lib/pgsql/data_9.6/</b></i></li>
<li>As root, initialize your 10.3 database: <b> <i>sudo postgresql-setup initdb</i></b></li>
<li>As user postgres, Copy your pg_hba.conf: <i><b>cp /var/lib/pgsql/data_9.6/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf</b></i></li>
<li>To avoid any potential password issues, temporarily change "md5" to "trust" in both pg_hba.conf files</li>
<li>Run the upgrade process: <i><b>pg_upgrade -b /usr/lib64/pgsql/postgresql-9.6/bin/ -B /usr/bin/ -d data_9.6/ -D data</b></i></li>
<li>Change "trust" to md5" if you changed in step 6 <b><br /></b></li>
<li>Enable your postgresql.service: <i><b>sudo systemctl enable postgresql.service</b></i></li>
<li>Start your postgresql.service: <i> <b>sudo systemctl start postgresql.service</b></i></li>
<li>Run the analyse_new_cluster.sh script as suggested</li>
<li>Run the delete_old_cluster.sh script as suggested</li>
</ol>
<div>
Note: When running commands as the postgres user, it is
assumed you are running them from the postgres user $home directory.
This will be your location after you enter the command in step 2. If
you for some reason change to another directory from this userid, just
remember to enter: <b>cd $home </b>before entering any postgresql
commands - otherwise you may not be able to execute the desired command,
or may receive a permission error.</div>
gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-33794160584919066932017-07-11T11:10:00.000-07:002017-07-11T11:10:06.771-07:00PostgreSQL Upgrade - Fedora 26Fedora 26 will upgrade your PostgreSQL database from 9.5.~ to 9.6.3-1.<br />
<br />
Since this is a major upgrade it will require that you upgrade your database.<br />
<br />
Here is how to do it:<br />
<br />
<ol>
<li>Install the upgrade utilities: <i><b>dnf install postgresql-upgrade</b></i></li>
<li>Become user postgres: <i><b>sudo su - postgres</b></i></li>
<li>Rename the data directory: <i><b>mv /var/lib/pgsql/data/ /var/lib/pgsql/data_9.5/</b></i></li>
<li>As root, initialize your 9.6 database: <b> <i>sudo postgresql-setup initdb</i></b></li>
<li>As user postgres, Copy your pg_hba.conf: <i><b>cp /var/lib/pgsql/data_9.5/pg_hba.conf/ /var/lib/pgsql/data/pg_hba.conf/</b></i></li>
<li>To avoid any potential password issues, temporarily change "md5" to "trust" in both pg_hba.conf files</li>
<li>Run the upgrade process: <i><b>pg_upgrade -b /usr/lib64/pgsql/postgresql-9.5/bin/ -B /usr/bin/ -d data_9.5/ -D data</b></i></li>
<li>Change "trust" to md5" if you changed in step 6 <b><br /></b></li>
<li>Enable your postgresql.service: <i><b>sudo systemctl enable postgresql.service</b></i></li>
<li>Start your postgresql.service: <i> <b>sudo systemctl start postgresql.service</b></i></li>
<li>Run the analyse_new_cluster.sh script as suggested</li>
<li>Run the delete_old_cluster.sh script as suggested</li>
</ol>
<div>
Note: When running commands as the postgres user, it is
assumed you are running them from the postgres user $home directory.
This will be your location after you enter the command in step 2. If
you for some reason change to another directory from this userid, just
remember to enter: <b>cd $home </b>before entering any postgresql
commands - otherwise you may not be able to execute the desired command,
or may receive a permission error.</div>
gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-7059355562395301722016-06-23T16:01:00.003-07:002016-06-23T16:06:46.460-07:00PostgreSQL Upgrade - Fedora 24Fedora 24 will upgrade your PostgreSQL database from 9.4.8-1 to 9.5.3-1.<br />
<br />
Since this is a major upgrade it will require that you upgrade your database.<br />
<br />
Here is how to do it:<br />
<br />
<ol>
<li>Install the upgrade utilities: <i><b>dnf install postgresql-upgrade</b></i></li>
<li>Become user postgres: <i><b>sudo su - postgres</b></i></li>
<li>Rename the data directory: <i><b>mv /var/lib/pgsql/data/ /var/lib/pgsql/data_9.4/</b></i></li>
<li>As root, initialize your 9.5 database: <b> <i>sudo postgresql-setup initdb</i></b></li>
<li>As user postgres, Copy your pg_hba.conf: <i><b>cp /var/lib/pgsql/data_9.4/pg_hba.conf/ /var/lib/pgsql/data/pg_hba.conf/</b></i></li>
<li>To avoid any potential password issues, temporarily change "md5" to "trust" in both pg_hba.conf files</li>
<li>Run the upgrade process: <i><b>pg_upgrade -b /usr/lib64/pgsql/postgresql-9.4/bin/ -B /usr/bin/ -d data_9.4/ -D data</b></i></li>
<li>Change "trust" to md5" if you changed in step 6 <b><br /></b></li>
<li>Enable your postgresql.service: <i><b>sudo systemctl enable postgresql.service</b></i></li>
<li>Start your postgresql.service: <i> <b>sudo systemctl start postgresql.service</b></i></li>
<li>Run the analyse_new_cluster.sh script as suggested</li>
<li>Run the delete_old_cluster.sh script as suggested</li>
</ol>
<div>
Note: When running commands as the postgres user, it is assumed you are running them from the postgres user $home directory. This will be your location after you enter the command in step 2. If you for some reason change to another directory from this userid, just remember to enter: <b>cd $home </b>before entering any postgresql commands - otherwise you may not be able to execute the desired command, or may receive a permission error.</div>
gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-64805597417581635832016-05-19T10:27:00.000-07:002016-05-19T10:27:17.453-07:00Google Allo & Duo - Innovation, Desperation or EmulationI am about as pro-Google as a person can get. This blog is on Blogger, I use GMail, Google Apps, G+, Google Photos, Calendar, Chrome, Music, Android, TV, etc. - but as of late Google has lost my loyalty. As the saying goes: "Fooled me once, shame on you. Fooled me twice, shame on me."<br />
<div>
<br /></div>
In the past I've been excited and enthusiastic about such announcements; wondering what great new things Google was creating. Now - not so much. Is this Innovation, Desperation or Emulation.<br />
<br />
It isn't Innovation. <a href="http://www.telegram.org/">Telegram</a> is a messaging application which is available now and does everything that Allo claims to do, and more. Desperation? I seriously doubt it Google has so much money this is just a blip on their radar, if that. Emulation? Yup... they figure that messaging is so fundamental, they might as well have a messaging client. Based on the feature set, platforms and availability they clearly aren't that excited about it; almost seems like an afterthought. <br />
<br />
I'm sure by now everyone is familiar with the <a href="https://goo.gl/PJxv88">Allo & Duo Product Announcement</a>. This was one of their major announcements from the 2016 Google I/O... another messaging app. Huh? We were told that Hangouts (which was to replace SMS and GTalk) was going to the Google Messaging solution. Then, not too much later Google Messenger was introduced on Android to handle SMS. That should have been a red flag. The problem with Google is they can't make up their mind. <br />
<br />
Instead of launching a product and improving it, they have gotten into the habit of letting the current product wither and just launching another replacement. <br />
<br />
What they are forgetting about messaging is that it's not just the decision of one person which messaging app you use... what is also important is the application that your friends and colleagues choose to use.<br />
<br />
Another factor is pervasiveness of the application. The more places it can run, the larger the potential customer base. They have decided that Allo is to run only on mobile. If you want to send messages from your Desktop, you can use Hangouts. Huh?<br />
<br />
What we are also being told is that not all of the features of Hangouts are available in Allo - but don't worry; you can continue to use Hangouts for that.... and eventually, maybe, someday, could be, we will be updating Allo. Seriously? Didn't you say that about Hangouts? What is more likely to happen, based upon past experience, is that Google will simply discontinue Allo and come out with something else - and expect everyone to switch again to a new application. <br />
<br />
This has become Google's modus operandi. Google thinks that their customers have not noticed, or that their customers do not care. They are mistaken. What Google doesn't seem to understand is that if you want people and their contacts to switch to your product there needs to be a compelling reason to do so. Allo just isn't compelling.<br />
<br />
Of course this is assuming that Google cares. It could be simply that they don't care - and that this is just one big kabuki dance to make everyone believe they are trying to innovate and compete in the messaging space. Either way, it isn't working. They clearly aren't serious. One only need look to see what is available from the competition. This is too little, too late.<br />
<br />
I currently use Telegram and it currently supports everything that Allo will do, is available now and runs on every imaginable platform (yes, including Linux Desktops which Google has been ignoring for years). Telegram supports phone number signup and allows to also create a nickname (if you don't want people to know your phone number). If you want an open source, full featured, secure, continually improving messaging client that runs on ALL platforms, and is available NOW - check out <a href="http://www.telegram.org/">Telegram</a>.<br />
<br />
<br />gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-48604109109081335482015-05-23T11:48:00.000-07:002015-05-23T17:28:22.643-07:00Telegram Messenger Installation for Fedora<a href="https://telegram.org/">Telegram</a> is a lightweight messenger platform which is easy to install, configure and use. It is quite similar to Facebook owned Whatsapp messenger, but has the following advantages:<br />
<br />
<ol>
<li>Your chats are synchronized across all your devices </li>
<li>You can install and send messages from your phone, tablet and/or desktop</li>
<li>You can send documents of any type</li>
<li>The client is open source and is licensed under <a href="http://www.gnu.org/licenses/quick-guide-gplv3.en.html">GPLv3</a></li>
<li>It is free. No ads or subscription fees</li>
<li>There are no limits on the size of your media or chats</li>
<li>Your messages are encrypted</li>
</ol>
The <a href="https://desktop.telegram.org/">Telegram installation instructions</a> are simple and easy to follow. I have also created a <a href="https://gbcox.fedorapeople.org/telegram/telegram_install">telegram_install</a> script which you can download and execute. Be sure to set the script as executable first by issuing the command: <b><i>chmod +x telegram_install</i></b><br />
<b><i><br /></i></b>
The script will do the following:<br />
<br />
<ol>
<li>Check the architecture to determine if you are running 32bit or 64bit</li>
<li>Download the appropriate version and save it as tsetup.tar.xz</li>
<li>Extract the compressed tar file into your home directory</li>
<li>Start the Telegram setup program</li>
<li>Remove tsetup.tar.xz (as it is no longer needed)</li>
</ol>
<div>
Telegram will create a desktop file to allow you to click on an icon from your start menu:($HOME/.local/share/applications/telegramdesktop.desktop)</div>
<br />
<br />
Telegram will automatically upgrade as new versions are available.<br />
<br />
If you wish to uninstall, simply:<br />
<br />
<ol>
<li>rm $HOME/Telegram --recursive</li>
<li>rm $HOME/.local/share/applications/telegramdesktop.desktop</li>
</ol>
<br />
<br />gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-75454014229849135352015-05-03T19:40:00.001-07:002015-05-03T19:40:51.043-07:00PostgreSQL Upgrade - Fedora 22Fedora 22 will upgrade your PostgreSQL database from 9.3.6 to 9.4.1<br />
<br />
Since this is a major upgrade it will require that you upgrade your database.<br />
<br />
Here is how to do it:<br />
<br />
<ol>
<li>Install the upgrade utilities: <i><b>dnf install postgresql-upgrade</b></i></li>
<li>Become user postgres: <i><b>sudo su - postgres</b></i></li>
<li>Rename the data directory: <i><b>mv /var/lib/pgsql/data/ /var/lib/pgsql/data_9.3/</b></i></li>
<li>As root, initialize your 9.4 database: <b> <i>sudo postgresql-setup initdb</i></b></li>
<li>As user postgres, Copy your pg_hba.conf: <i><b>cp /var/lib/pgsql/data_9.3/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf</b></i></li>
<li>To avoid any potential password issues, temporarily change "md5" to "trust" in both pg_hba.conf files</li>
<li>Run the upgrade process: <i><b>pg_upgrade -b /usr/lib64/pgsql/postgresql-9.3/bin/ -B /usr/bin/ -d data_9.3/ -D data</b></i></li>
<li>Change "trust" to md5" if you changed in step 6 <b><br /></b></li>
<li>Enable your postgresql.service: <i><b>sudo systemctl enable postgresql.service</b></i></li>
<li>Start your postgresql.service: <i> <b>sudo systemctl start postgresql.service</b></i></li>
<li>Run the analyse_new_cluster.sh script as suggested</li>
<li>Run the delete_old_cluster.sh script as suggested</li>
</ol>
gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-84791436689736021342014-05-14T16:09:00.000-07:002015-05-23T18:24:07.289-07:00Enable Google Profile name and icon with Chrome Profile Management<div class="separator" style="clear: both; text-align: center;">
</div>
<b>This is no longer an experimental feature and is now enabled by default, so the information listed below no longer applies.</b><br />
<br />
Chrome has a feature called: <a href="http://goo.gl/vDh48a">Chrome Profile Management</a> which allows you to setup multiple users of Chrome on the same computer. Google has introduced an experimental feature which changes the way new users are managed. It also will display your avatar and name from your Google account; assuming you have logged in.<br />
<br />
<strike>Information about this <a href="http://goo.gl/xcDQUi">Experimental Chrome Profile Management</a> feature can be found on Google Plus. </strike><br />
<br />
Since this is an experimental feature, the functions available are under development and may be different depending on which version of Chrome you are running. If the feature is discontinued or migrated as a regular feature I will update this post. <br />
<br />
<span style="font-family: inherit;">I am running the latest normal version of chrome (not beta): 34.0.1847.137</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">To activate, go to <b>chrome://flags</b> and enable: </span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><b>Enable new profile management system</b></span><br />
<span style="font-family: inherit;"><b>Enable Google profile name and icon</b></span><br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-16UYaDzoMwM/U3OyGPnFuTI/AAAAAAAAhSo/cOMKe46LAEg/s1600/chome_profile_management_before.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="237" src="http://2.bp.blogspot.com/-16UYaDzoMwM/U3OyGPnFuTI/AAAAAAAAhSo/cOMKe46LAEg/s1600/chome_profile_management_before.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Chrome Flag Default Settings<br />
<br />
<div style="text-align: left;">
<span style="font-size: small;">After you enable, the Relaunch Now button will appear, press it to relaunch Chrome and activate the changes. </span></div>
</td></tr>
</tbody></table>
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-0hBsdo3OpMg/U3OyL22k49I/AAAAAAAAhSs/i3Rzd7O7Ux8/s1600/chrome_flags_relaunch.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="128" src="http://3.bp.blogspot.com/-0hBsdo3OpMg/U3OyL22k49I/AAAAAAAAhSs/i3Rzd7O7Ux8/s1600/chrome_flags_relaunch.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Relaunch Now Button appears to apply changes<br />
<br />
<div style="text-align: left;">
<span style="font-size: small;">When Chrome relaunches, assuming you are logged into your Google Account you will see your avatar at the top left corner of the screen. You're done.</span></div>
</td></tr>
</tbody></table>
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-jD-Fkz5fGOI/U3OyQCrOb3I/AAAAAAAAhS0/TPAqWqEtftg/s1600/chome_profile_management.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="235" src="http://4.bp.blogspot.com/-jD-Fkz5fGOI/U3OyQCrOb3I/AAAAAAAAhS0/TPAqWqEtftg/s1600/chome_profile_management.png" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Chrome Flag showing changes enabled</td></tr>
</tbody></table>
<br />
<br />gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-82929089853362906342013-12-17T17:05:00.000-08:002013-12-17T17:05:25.642-08:00PostgreSQL Upgrade - Fedora 20Fedora 20 will upgrade your PostgreSQL database from 9.2.6-1 to 9.3.1-2.<br />
<br />
Since this is a major upgrade it will require that you upgrade your database.<br />
<br />
Here is how to do it:<br />
<br />
<ol>
<li>Install the upgrade utilities: <i><b>yum install postgresql-upgrade</b></i></li>
<li>Become user postgres: <i><b>sudo su - postgres</b></i></li>
<li>Rename the data directory: <i><b>mv /var/lib/pgsql/data/ /var/lib/pgsql/data_9.2/</b></i></li>
<li>As root, initialize your 9.3 database: <b> <i>sudo postgresql-setup initdb</i></b></li>
<li>As user postgres, Copy your pg_hba.conf: <i><b>cp /var/lib/pgsql/data_9.2/pg_hba.conf/ /var/lib/pgsql/data/pg_hba.conf/</b></i></li>
<li>To avoid any potential password issues, temporarily change "md5" to "trust" in both pg_hba.conf files </li>
<li>Run the upgrade process: <i><b>pg_upgrade -b /usr/lib64/pgsql/postgresql-9.2/bin/ -B /usr/bin/ -d data_9.2/ -D data</b></i></li>
<li>Change "trust" to md5" if you changed in step 6 <b><br /></b></li>
<li>Enable your postgresql.service: <i><b>sudo systemctl enable postgresql.service</b></i></li>
<li>Start your postgresql.service: <i> <b>sudo systemctl start postgresql.service</b></i></li>
<li>Run the analyse_new_cluster.sh script as suggested </li>
<li>Run the delete_old_cluster.sh script as suggested</li>
</ol>
<br />gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-56409419000634467102013-07-11T21:18:00.000-07:002013-07-11T21:18:21.703-07:00Fedora 19 Installation on the ASUS X401UIf you want a great budget laptop that runs Fedora with no issues, look no further: <br />
<a href="http://www.bestbuy.com/site/14%22+Laptop+-+4GB+Memory+-+500GB+Hard+Drive/8850089.p?skuId=8850089">ASUS X401U - Best Buy</a><br />
<br />
It's not a speed demon, but:<br />
<ul>
<li>Great form factor, thin and light</li>
<li>AMD processor - more bang for the buck</li>
<li>ASUS build quality</li>
<li>Open Source compatibility</li>
<li>Bright sharp display, supports desktop effects</li>
<li>Perfectly fine for web surfing, word processing, watching videos, music, light gaming, etc.</li>
</ul>
<br />
What's the negative? It comes bundled with Windows. Well, it's easy to fix that by installing Fedora 19.<br />
<br />
First you'll need to download the <a href="http://download.fedoraproject.org/pub/fedora/linux/releases/19/Fedora/x86_64/iso/Fedora-19-x86_64-netinst.iso">Fedora Network Install Image</a><br />
<br />
Then put that image on a USB stick. You only need 512Mb.<br />
<a href="http://docs.fedoraproject.org/en-US/Fedora/19/html/Installation_Guide/Making_USB_Media.html">Making USB Media</a><br />
<br />
Insert the USB stick in the laptop. <br />
<br />
Disable the UEFI secure boot - you don't need it. If you want to read more about it: <a href="http://docs.fedoraproject.org/en-US/Fedora/18/html/UEFI_Secure_Boot_Guide/index.html">UEFI Secure Boot Guide</a><br />
<br />
When powering on your system for the first time, you will be presented with the boot menu.<br />
<br />
Please select boot device:<br />
<blockquote class="tr_bq">
<i><b>Windows 8</b></i><br />
<i><b>Enter Setup </b></i></blockquote>
Select: <i><b>Enter Setup</b></i> - to enter the BIOS settings<br />
<br />
Go to the Security tab, scroll down until you ave selected:<br />
<blockquote class="tr_bq">
<i><b>System Boot Control [Enabled]</b></i></blockquote>
When you have selected, you will notice the text is now white, and on the right side of the screen you will see the text:<br />
<br />
<blockquote class="tr_bq">
<i><b>Secure Boot flow control.</b></i><br />
<i><b>Secure Boot is possible only if System runs in User mode</b></i></blockquote>
<br />
Press enter, a blue menu will pop up, with the word <i><b>Enabled</b></i> in a black background. Use the down arrow to select: <i><b>Disabled</b></i><br />
<br />
Press enter, then press F10 to save and exit.<br />
<br />
When the system boots again, select the inserted USB stick to boot the Fedora Network install.<br />
<br />
Follow the prompts. When you reach the part about the installation media, select the entire drive and tell Fedora to reclaim the space. The other installation defaults are fine. <i><b>Be advised if you reclaim the entire disk (which is what I did) there is no going back.</b></i> ASUS ships the disk with a recovery partition, and if you reclaim the entire disk, you've erased that partition.<br />
<br />
You may wish to plug in a network cable rather than using wireless for the install, that would be faster. The network connector on the laptop has a latch that you may need to manually pull down a bit if you have problems removing the Ethernet cable. You'll notice it moves downward when you first insert the cable, then snaps back up somewhat to lock the cable in place. gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-20279299966877759542013-06-14T18:52:00.001-07:002014-12-31T22:33:24.990-08:00TTRSS - Synchronization for changes to config.php-distThis procedure requires you first setup the TTRSS UTILS environment
described in the post: TTRSS UTILS - Fedora Tiny Tiny RSS Utilities<br />
<br />
If you are running the Update Script for the TTRSS Trunk version described in another post, you can ignore this. The synchronization functionality is already built into that utility. <br />
<br />
<br />
This posting is for those who don't wish to run the trunk version. It doesn't stop or start any services. It basically automatics the synchronization process, merging changes from the new config.php-dist and your existing config.php. The change logic is as follows:<br />
<ol>
<li>config.php-dist is considered authoritative, which means all of those changes will be merged into your new config.php</li>
<li>If the particular statement in config.php-dist has not been modified from the previous version, and it matches your config.php that line will be displayed in GREEN. No action is required for that line. </li>
<li>Changes made to your config.php will be preserved only if they are made to a define statement AND that define statement has not been changed in config.php-dist from the time it was originally cloned into your config.php. If your config.php statement has been carried over to the new config.php that line will be displayed in YELLOW. No further action is required for that line.</li>
<li>If a define statement has been changed, it will replace whatever you had in your config.php - the assumption being that this is something which requires manual intervention. This line will be displayed in RED. You should use a program such as vim to examine both files and make the necessary changes, i.e.<i><b> vim -d config.php config.php-dist</b></i></li>
<li>If the define is completely new, it will included in your new config.php file and the line will be displayed in BLUE. You should look at the comments for that define in the new config.php and determine if any changes are required.</li>
<li>Your current config.php will be renamed and retained for 14 days</li>
<li>A log will be created which shows actions that have occurred. These actions are also displayed on your screen as the script is executing.</li>
</ol>
<b>FIRST TIME USAGE:</b><br />
<i><b>Run this utility BEFORE and AFTER the upgrade. This will allow the utility to create a "before-upgrade" image of "config.php-dist" to use for comparison purposes. If you have already upgraded, you won't be able to take advantage of this check for the first run - however, subsequent runs will be able to make this extra comparison. DO NOT delete or change the "config.php-dist_cfg_ttrss" file this utility creates. </b></i><br />
<br />
To run:<br />
<ol>
<li><i><b>cd $home</b></i></li>
<li><i><b>cd ttrss_maint/ttrss_utils</b></i></li>
<li><i><b>sudo ./cfg_ttrss</b></i></li>
</ol>
gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-58758685952883190602013-06-14T13:47:00.000-07:002015-02-03T10:01:14.744-08:00TTRSS UTILS - Fedora Tiny Tiny RSS UtilitiesI've decided to standardize my group of utilities for TTRSS. My original intent on posting all these updates in the blog was to help folks get config samples, utilities and installation/configuration information in an easy and straightforward manner.<br />
<br />
The blog entries will continue, but I'm changing the way code samples and utilities are organized and distributed.<br />
<br />
All files will now be hosted on bitbucket:<br />
<br />
<b><i>https://gbcox@bitbucket.org/gbcox/ttrss_utils.git</i></b><br />
<br />
You would install them in your home directory by:<br />
<ol>
<li><i><b>cd $home</b></i></li>
<li><i><b>mkdir ttrss_maint</b></i></li>
<li><i><b>cd ttrss_maint</b></i></li>
<li><i><b>git clone</b></i><b><i> https://gbcox@bitbucket.org/gbcox/ttrss_utils.git</i></b></li>
</ol>
Now, if you wish to get the latest copy of the utilities, it is simple as:<br />
<ol>
<li><i><b>cd $home/ttrss_maint/ttrss_utils</b></i></li>
<li><i><b>git pull </b></i></li>
</ol>
Before you start using any of the utilities, you must configure a set of variables which are unique to your system.<br />
<ol>
<li><i><b>cd $home</b></i></li>
<li><i><b>cd ttrss_maint</b></i></li>
<li><i><b>cp ttrss_utils/src_var_ttrss_dist src_var_ttrss</b></i></li>
<li><i><b>vim src_var_ttrss</b></i></li>
<li><i><b>===> Edit the file ===<</b></i></li>
<li><i><b>:wq</b></i></li>
</ol>
The $home/ttrss_maint directory will contain other subdirectories relating to different functions; i.e. the database backup utility files will be stored in $home/ttrss_maint/db_backup. The src_var_ttrss script is the only non-directory file which will exist in this directory. <br />
<br />
The utilities are designed to be executed from the $home/ttrss_maint/ttrss_utils directory. They will call src_var_ttrss to obtain their variables.<br />
<br />
<br />
The other blog entries which describe the utilities and sample configurations will be updated to reflect these changes.gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-26039862898244324132013-06-06T11:24:00.001-07:002014-12-31T22:34:11.268-08:00Update Script for TTRSS Trunk Version - FedoraThis procedure requires you first setup the TTRSS UTILS environment described in the post: TTRSS UTILS - Fedora Tiny Tiny RSS Utilities<br />
<br />
To run:<br />
<ol>
<li><i><b>cd $home</b></i></li>
<li><i><b>cd ttrss_maint/ttrss_utils</b></i></li>
<li><i><b>sudo ./git_ttrss</b></i></li>
</ol>
This procedure does the following:<br />
<ol>
<li>Stops your web server</li>
<li>Stops your TTRSS Update service</li>
<li>Stops the Sphinx Indexing Service - if activated in config.php</li>
<li>Updates TTRSS</li>
<li>Updates the TTRSS CONTRIB Plugins</li>
<li>Starts the web server</li>
<li>Starts your TTRSS Update service</li>
<li>Starts the Sphinx Indexing service - if activated in config.php</li>
<li>Notification of Database Schema change - which will also require you manually start your TTRSS Update and Sphinx Services</li>
<li>Automatic config.php update if config.php_dist changes. The previous copy of config.php will be retained for 14 days<b><i></i></b></li>
<li>Creation of activity log file which will be deleted after 14 days</li>
</ol>
First you'll want to review:<br />
<a href="http://tt-rss.org/forum/viewtopic.php?f=1&t=1697">How To Use Trunk Version?</a><br />
<br />
You will need to have cloned TTRSS:<br />
<ol>
<li><i><b>cd $WEB_ROOT</b></i></li>
<li><i><b>sudo git clone https://github.com/gothfox/Tiny-Tiny-RSS.git $TTRSS_DIR </b></i></li>
</ol>
You will need to have cloned TTRSS_CONTRIB: <br />
<ol>
<li><i><b>cd $home</b></i></li>
<li><i><b>cd ttrss_maint</b></i></li>
<li><i><b>git clone https://github.com/gothfox/Tiny-Tiny-RSS-Contrib.git ttrss_contrib</b></i></li>
</ol>
If a database schema change is detected you will receive a notification message that you will be prompted to make the update when you attempt to login to TTRSS. After you complete the schema update you will need to:<br />
<br />
Rebuild your Sphinx full-text index (if you are using Sphinx):<br />
<i><b>./bin/indexer --all</b></i><br />
<br />
Then manually start your update and Sphinx services:<i><b> </b></i><br />
<i><b>systemctl start TTRSS_UPDATE_SERVICE.service</b></i><br />
<i><b>systemctl start SPHINX_SERVICE.service (If using Sphinx)</b></i>gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-81003487799572972472013-05-23T16:12:00.000-07:002014-12-31T22:34:53.788-08:00PostgreSQL Database Backup on FedoraThis procedure requires you first setup the TTRSS UTILS environment
described in the post: TTRSS UTILS - Fedora Tiny Tiny RSS Utilities<br />
<br />
This method uses CRON under your own userid and pulls db_name and db_user information from your TTRSS config.php<br />
<br />
Backup files will be stored in <i><b>$home/ttrss_maint/db_backup/ </b></i>and will be retained for 14 days.<br />
<br />
Create a <i><b>.pgpass</b></i> file in your home directory:<br />
<i><b>*:*:ttrss_db:ttrss_user:ttrss_user_password</b></i><br />
<br />
Secure the file: <b><i>chmod 600 .pgpass</i></b><br />
<br />
Copy the contents of ../ttrss_utils/sample_conf/db_backup_crontab into your crontab: <i><b>crontab -e</b></i><br />
Replace <i><b>xxxxx</b></i> with your account_name.<br />
<br />
If you wish to run the backup manually:<br />
<ol>
<li><i><b>cd $home</b></i><i><b> </b></i></li>
<li><i><b>cd ttrss_maint/ttrss_utils</b></i><i><b> </b></i></li>
<li><i><b>./pgsql_cron_backup</b></i></li>
</ol>
<br />gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-22978860320681252132013-05-23T15:20:00.001-07:002013-05-23T15:20:24.721-07:00Installing PostgreSQL on Fedora for Tiny Tiny RSSI recently decided to switch my Tiny Tiny RSS database from MariaDB/MySQL to PostgreSQL. Mainly because of this post: <a href="http://tt-rss.org/forum/viewtopic.php?f=1&t=2053">MySQL issues: Lock wait timeout exceeded</a><br />
<br />
The bottom line is you get much better performance from Postgresql. Postgresql uses less system resources and it really isn't a big deal to install or support; it is fairly simple. I really don't get why it isn't more popular. If it were a massive pain, I could understand it, but it really isn't. Go figure!<br />
<br />
That said, here we go...<br />
<br />
As root:<br />
<i><b>yum install postgresql postgresql-server postgresql-contrib php-pgsql </b></i><br />
<br />
After the install, you must next initialize the postgresql database:<br />
<i><b>postgresql-setup initdb</b></i><br />
<br />
Now start and enable the service, so it will automatically start when you boot:<i><b> </b></i><br />
<i><b>systemctl start postgresql.service</b></i><br />
<i><b>systemctl enable postgresql.service</b></i><br />
<br />
Configure the service account for Tiny Tiny RSS:<i><b> </b></i><br />
<i><b>su - postgres</b></i><br />
<i><b>createuser -P -S -D -R -l ttrss_user</b></i><br />
<br />
When prompted to enter a password, create a new password:<br />
<i><b>enter new password: your_password</b></i><br />
<br />
Create the Tiny Tiny RSS Database:<br />
<i><b>createdb --owner=ttrss_user ttrss_db</b></i> <br />
<br />
Grant permissions to the ttrss_db:<i><b> </b></i><br />
<i><b>psql</b></i><br />
<i><b>grant all on database ttrss_db to ttrss_user;</b></i> <br />
<br />
Now you need to modify the postgresql client authentication configuration file to ensure you can login with all the changes you just made:<i><b> </b></i><br />
<i><b>cd /var/lib/pgsql/data</b></i> <br />
<br />
Make a backup of the distribution configuration file:<i><b> </b></i><br />
<i><b>cp pg_hba.conf pg_hba.conf.dist</b></i><br />
<i><b>vim pg_hba.conf</b></i> <br />
<br />
Now, change the lines ending in 'ident' to end with 'md5'<br />
<i><b>:wq</b></i><br />
<br />
Restart PostgreSQL to activate all the changes:<br />
<i><b>systemctl restart postgresql.service</b></i><br />
<br />
Load the Tiny Tiny RSS Postgresql schema:<br />
<i><b>psql -U ttrss_user -d ttrss_db -f /var/www/html/ttrss/schema/ttrss_schema_pgsql.sql</b></i><br />
<span id="docs-internal-guid-148ab00f-d335-c193-5566-063af99454cd" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"><br /></span>gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-90149296792089179442013-05-13T10:32:00.000-07:002013-06-14T20:12:11.688-07:00Upgrading TTRSS - Sphinx search, schema changes and config.php<br />
After you complete the upgrade, you'll want to check:<br />
<ol>
<li>config.php-dist to see if there have been any changes. I have a post which describes a utility that can assist.</li>
<li>Schema changes. TTRSS will walk you through the procedure, if needed, when you first try to login after an upgrade.</li>
<li>Rebuild the Sphinx full-text index of the ttrss database. You'll want to do this if there has been a schema change.</li>
</ol>
To rebuild the Sphinx full-text index:<br />
<br />
<i><b>sudo systemctl stop searchd.service</b></i> <br />
<br />
Run the indexer to create the full-text index of the ttrss database:<br />
<br />
<i><b>cd /bin</b></i><br />
<i><b>sudo ./indexer --all</b></i><br />
<br />
<i><b><i><b>sudo systemctl start searchd.service</b></i> </b></i><br />
<br />
That's it. You're done.<i><b> </b></i><br />
<br />
<br />
<i><b> </b></i> <br />
<br />
<br />
<br />
<br />gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-27981819343204602402013-05-03T20:18:00.001-07:002013-06-19T18:24:08.323-07:00SPDY with NGINX 1.4.0 on Fedora 18 - Tiny Tiny RSSI've seen many postings regarding the activation of SPDY with Tiny Tiny RSS - quite a few people seem to have installation/configuration problems.<br />
<br />
With the recent release of NGINX 1.4.0, SPDY support is included so you don't have to do it manually. NGINX 1.4.0 will be included with Fedora 19, which will be available in July. <br />
<br />
I pulled the spec file from the fedora testing repository and created a build for Fedora 18. It is available here: <a href="https://docs.google.com/file/d/0B96ctNl5KI2aZGdSSE11dTJQWFE/edit?usp=sharing" target="_blank">nginx-1.4.0-2.fc18.x86_64.rpm</a> <br />
<br />
If you are already running NGINX on Fedora 18 with the current repository rpm all you need do is: <i><b>yum upgrade nginx-1.4.0-2.fc18.x86_64.rpm</b></i><br />
<br />
If not, I highly recommend you first follow these instructions by <a href="https://plus.google.com/116504510413299636245/posts" target="_blank">David Strauss</a>: <br />
<a href="http://goo.gl/up1Z7" target="_blank">Tiny Tiny RSS on Fedora 18</a><br />
<br />
A few notes about the install:<br />
<ul>
<li>Remember if you are converting from apache you need to stop and disable the apache service before trying to install nginx</li>
<li>I recently installed Fedora on a new computer and did not install Apache, so I made sure that <i><b>/var/www</b></i> was set to <i><b>nginx:nginx</b></i>. You also need to edit <i><b>/etc/php-fpm.d/www.conf </b></i>and change the user/group parameters in that file from apache to <i><b>nginx</b></i> </li>
<li>If you don't already have mysql installed, you may wish to install postgresql instead since it has better performance than mysql or mariadb. I have a post which has more information. </li>
<li>Pay attention to the root settings in ttrss.conf - if you want to specify ttrss in your URL (https://localhost/ttrss), you need to make the root <i><b>/var/www/html</b></i> instead of <i><b>/var/www/html/ttrss</b></i> - I use <i><b>/var/www/html</b></i> in my version of <a href="https://docs.google.com/file/d/0B96ctNl5KI2adXZETmpvVkMxNFk/edit?usp=sharing" target="_blank">ttrss.conf</a> </li>
</ul>
<br />
After the upgrade to nginx-1.4.0 is complete, change the <i><b>ttrss.conf</b></i> file in David's example as follows:<br />
<br />
Change:<br />
<i><b>listen 443;</b></i> to <i><b>listen 443 ssl spdy; #Turn SPDY on</b></i><br />
<br />
Then insert the following line directly after:<br />
<i><b>spdy_headers_comp 7; #Compress your headers</b></i><br />
<br />
You can find the explanation of these settings here:<br />
<a href="http://nginx.org/en/docs/http/ngx_http_spdy_module.html" target="_blank">NGINX SPDY Reference Page</a><br />
<br />
Alternatively, you can just download the file here and place it in your<br />
<i><b>/etc/nginx/conf.d</b></i> directory: <a href="https://docs.google.com/file/d/0B96ctNl5KI2adXZETmpvVkMxNFk/edit?usp=sharing" target="_blank">ttrss.conf</a> <br />
<br />
Now you can restart your nginx service:<br />
<i><b>systemctl restart nginx.service</b></i><br />
<br />
If you wish you can test by installing an addon which is available for either Firefox or Chrome:<br />
<br />
<a href="https://addons.mozilla.org/en-US/firefox/addon/spdy-indicator/" target="_blank">Firefox SPDY Indicator</a><br />
<br />
<a href="http://www.devthought.com/2012/03/10/chrome-spdy-indicator/" target="_blank">Chrome SPDY Indicator</a><br />
<br />
Have fun! gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-14683410711418836062013-04-26T08:46:00.000-07:002014-12-31T22:34:36.212-08:00MariaDB/MySQL Database Backup on FedoraThis procedure requires you first setup the TTRSS UTILS environment
described in the post: TTRSS UTILS - Fedora Tiny Tiny RSS Utilities<br />
<br />
This method uses CRON under your own userid and pulls db_name and db_user information from your TTRSS config.php<br />
<br />
Backup files will be stored in $home/ttrss_maint/db_backup/ and will be retained for 14 days. <br />
<br />
<br />
Create a <i><b>.my.cnf</b></i> file in your home directory:<br />
<br />
<i><b>[mysqldump]</b></i><br />
<i><b>user=root</b></i><br />
<i><b>password=your_mysql_root_password </b></i><br />
<br />
Secure the file: <b><i>chmod 600 .my.cnf</i></b> <br />
<br />
<i><b>
</b></i>Copy the contents of ../ttrss_utils/sample_conf/mariadb_db_backup_crontab into your crontab: crontab -e<br />
Replace xxxxx with your account_name.<br />
<br />
If you wish to run the backup manually:<br />
<ol>
<li>cd $home </li>
<li>cd ttrss_maint/ttrss_utils </li>
<li>./mariadb_cron_backup</li>
</ol>
<br />gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-14103688577785564902013-04-24T13:07:00.004-07:002013-04-24T13:07:54.422-07:00MariaDB is replacing MySQL in Fedora - Tiny Tiny RSSMariaDB will be replacing MySQL as the default beginning with Fedora 19. Fedora 19 is scheduled to be released in July, 2013. <br />
<br />
If you are running Tiny Tiny RSS and wish to convert now, I would suggest the following sequence:<br />
<br />
As root:<br /><i><b>systemctl stop ttrss-update.service<br />systemctl stop httpd.service<br />systemctl stop searchd.service<br />systemctl stop mysqld.service</b></i><br />
<br />>>>> <a href="http://fedoraproject.org/wiki/Features/ReplaceMySQLwithMariaDB#Steps_to_replace_MySQL_with_the_new_MariaDB_for_testing_purposes_in_Fedora_17_and_18" target="_blank">Follow these instructions...</a><br />
<br />>>>> Then issue the upgrade command to clean things up for mariadb:<br /><b><i>systemctl start mysqld.service<br />mysql_upgrade -u root -p</i></b><br />>>> Enter your mysql root password to continue<br />
<br />>>>> When finished restart the mysqld.service<br /><i><b>systemctl restart mysqld.service</b></i><br />
<br />>>>> Now bring the rest of it back up<br /><i><b>systemctl start seachd.service<br />systemctl start httpd.service<br />systemctl start ttrss-update.service</b></i><br />
<br />
You're done.<i><b> </b></i>gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0tag:blogger.com,1999:blog-2867561727279143210.post-17285800048584051092013-04-24T12:54:00.003-07:002013-06-14T19:57:54.404-07:00Update Tiny Tiny RSS as a Fedora ServiceIf you are using postgresql:<br />
Download <a href="https://docs.google.com/file/d/0B96ctNl5KI2aSzZibUx5cXE0Q3M/edit?usp=sharing">rss-update.service</a><br />
<br />
As root:<br />
Place the file in: <i><b>/usr/lib/systemd/system/</b></i><br />
<br />
Issue the following commands:<br />
<i><b>systemctl enable rss-update.service</b></i><br />
<i><b>systemctl start rss-update.service</b></i><br />
<br />
<br />
If you are using mariadb/mysql: <br />
Download <a href="https://docs.google.com/file/d/0B96ctNl5KI2aR0FYOHNnXzJDS2M/edit?usp=sharing" target="_blank">ttrss-update.service</a><br />
<br />
As root:<br />
Place the file in: <i><b>/usr/lib/systemd/system/</b></i><br />
<br />
Issue the following commands:<br />
<i><b>systemctl enable ttrss-update.service</b></i><br />
<i><b>systemctl start ttrss-update.service</b></i><br />
<br />
You're done.gbcoxhttp://www.blogger.com/profile/09725619647879564972noreply@blogger.com0