Changeset 1451


Ignore:
Timestamp:
03/27/09 14:34:02 (11 years ago)
Author:
aleitner
Message:

change group of job if changed
check if client is offline
(#508)

Location:
branches/Hive_Management_Console_Refactoring_Ticket508/HeuristicLab.Hive.Server.Console
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/Hive_Management_Console_Refactoring_Ticket508/HeuristicLab.Hive.Server.Console/AddJobForm.Designer.cs

    r1089 r1451  
    8383      // btnClose
    8484      //
     85      this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
    8586      this.btnClose.Location = new System.Drawing.Point(254, 65);
    8687      this.btnClose.Name = "btnClose";
     
    118119      // AddJobForm
    119120      //
     121      this.AcceptButton = this.btnAdd;
    120122      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    121123      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
     124      this.CancelButton = this.btnClose;
    122125      this.ClientSize = new System.Drawing.Size(344, 100);
    123126      this.Controls.Add(this.lblError);
  • branches/Hive_Management_Console_Refactoring_Ticket508/HeuristicLab.Hive.Server.Console/Changes.cs

    r1381 r1451  
    66namespace HeuristicLab.Hive.Server.ServerConsole {
    77  public enum Change { Create, Update, Delete };
    8   public enum Type { Client, ClientGroup, Job, User, UserGroup };
     8  public enum Type { Client, ClientGroup, Job };
    99  public class Changes {
    1010
  • branches/Hive_Management_Console_Refactoring_Ticket508/HeuristicLab.Hive.Server.Console/HiveServerConsole.Designer.cs

    r1372 r1451  
    178178      // HiveServerConsole
    179179      //
     180      this.AcceptButton = this.btnLogin;
    180181      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    181182      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
  • branches/Hive_Management_Console_Refactoring_Ticket508/HeuristicLab.Hive.Server.Console/HiveServerManagementConsole.Designer.cs

    r1381 r1451  
    7171      this.tpJobControl = new System.Windows.Forms.TabPage();
    7272      this.scJobControl = new System.Windows.Forms.SplitContainer();
     73      this.tvJobControl = new System.Windows.Forms.TreeView();
    7374      this.lvJobControl = new System.Windows.Forms.ListView();
    74       this.tvJobControl = new System.Windows.Forms.TreeView();
    7575      this.tpClientControl = new System.Windows.Forms.TabPage();
    7676      this.scClientControl = new System.Windows.Forms.SplitContainer();
     77      this.tvClientControl = new System.Windows.Forms.TreeView();
    7778      this.lvClientControl = new System.Windows.Forms.ListView();
    78       this.tvClientControl = new System.Windows.Forms.TreeView();
    7979      this.tcManagementConsole = new System.Windows.Forms.TabControl();
    8080      this.menuStrip1.SuspendLayout();
     
    134134      //
    135135      this.jobToolStripMenuItem.Name = "jobToolStripMenuItem";
    136       this.jobToolStripMenuItem.Size = new System.Drawing.Size(107, 22);
     136      this.jobToolStripMenuItem.Size = new System.Drawing.Size(102, 22);
    137137      this.jobToolStripMenuItem.Text = "Job";
    138138      this.jobToolStripMenuItem.Click += new System.EventHandler(this.AddJob_Click);
     
    145145      this.ilClientControl.Images.SetKeyName(1, "monitor-orange.png");
    146146      this.ilClientControl.Images.SetKeyName(2, "monitor-red.png");
     147      this.ilClientControl.Images.SetKeyName(3, "monitor-gray.png");
    147148      //
    148149      // ilJobControl
     
    499500      this.scJobControl.TabIndex = 1;
    500501      //
     502      // tvJobControl
     503      //
     504      this.tvJobControl.Dock = System.Windows.Forms.DockStyle.Fill;
     505      this.tvJobControl.Location = new System.Drawing.Point(0, 0);
     506      this.tvJobControl.Name = "tvJobControl";
     507      this.tvJobControl.Size = new System.Drawing.Size(139, 346);
     508      this.tvJobControl.TabIndex = 2;
     509      this.tvJobControl.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.OnTVJobControlClicked);
     510      //
    501511      // lvJobControl
    502512      //
     
    513523      this.lvJobControl.Click += new System.EventHandler(this.OnLVJobControlClicked);
    514524      //
    515       // tvJobControl
    516       //
    517       this.tvJobControl.Dock = System.Windows.Forms.DockStyle.Fill;
    518       this.tvJobControl.Location = new System.Drawing.Point(0, 0);
    519       this.tvJobControl.Name = "tvJobControl";
    520       this.tvJobControl.Size = new System.Drawing.Size(139, 346);
    521       this.tvJobControl.TabIndex = 2;
    522       this.tvJobControl.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.OnTVJobControlClicked);
    523       //
    524525      // tpClientControl
    525526      //
     
    550551      this.scClientControl.SplitterDistance = 139;
    551552      this.scClientControl.TabIndex = 0;
     553      //
     554      // tvClientControl
     555      //
     556      this.tvClientControl.Dock = System.Windows.Forms.DockStyle.Fill;
     557      this.tvClientControl.Location = new System.Drawing.Point(0, 0);
     558      this.tvClientControl.Name = "tvClientControl";
     559      this.tvClientControl.Size = new System.Drawing.Size(139, 346);
     560      this.tvClientControl.TabIndex = 0;
     561      this.tvClientControl.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.OnTVClientClicked);
    552562      //
    553563      // lvClientControl
     
    564574      this.lvClientControl.UseCompatibleStateImageBehavior = false;
    565575      this.lvClientControl.Click += new System.EventHandler(this.OnLVClientClicked);
    566       //
    567       // tvClientControl
    568       //
    569       this.tvClientControl.Dock = System.Windows.Forms.DockStyle.Fill;
    570       this.tvClientControl.Location = new System.Drawing.Point(0, 0);
    571       this.tvClientControl.Name = "tvClientControl";
    572       this.tvClientControl.Size = new System.Drawing.Size(139, 346);
    573       this.tvClientControl.TabIndex = 0;
    574       this.tvClientControl.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.OnTVClientClicked);
    575576      //
    576577      // tcManagementConsole
  • branches/Hive_Management_Console_Refactoring_Ticket508/HeuristicLab.Hive.Server.Console/HiveServerManagementConsole.cs

    r1431 r1451  
    9595        tvClientControl.Nodes.Clear();
    9696        int count = 0;
     97        List<long> inGroup = new List<long>();
    9798        foreach (ClientGroup cg in clients.List) {
    9899          tvClientControl.Nodes.Add(cg.Name);
    99100          ListViewGroup lvg = new ListViewGroup(cg.Name, HorizontalAlignment.Left);
    100           foreach (ClientInfo ci in clientManager.GetAllClients().List) {
     101          foreach (ClientInfo ci in cg.Resources) {
    101102            tvClientControl.Nodes[tvClientControl.Nodes.Count - 1].Nodes.Add(ci.Name);
    102             ListViewItem item = new ListViewItem(ci.Name, count, lvg);
     103            ListViewItem item = null;
     104            if ((ci.State == State.offline) || (ci.State == State.nullState)) {
     105              item = new ListViewItem(ci.Name, 3, lvg);
     106            } else {
     107              item = new ListViewItem(ci.Name, count, lvg);
     108            }
    103109            lvClientControl.Items.Add(item);
    104110            clientInfoObjects.Add(ci.Id, item);
    105111            count = (count + 1) % 3;
     112            inGroup.Add(ci.Id);
     113           
    106114          }
    107115          lvClientControl.BeginUpdate();
     
    112120
    113121        clientInfo = clientManager.GetAllClients();
    114         ListViewGroup lvunsorted = new ListViewGroup("unsorted", HorizontalAlignment.Left);
     122        ListViewGroup lvunsorted = new ListViewGroup("no group", HorizontalAlignment.Left);
    115123        foreach (ClientInfo ci in clientInfo.List) {
    116           tvClientControl.Nodes.Add(ci.Name);
    117           lvClientControl.Items.Add(new ListViewItem(ci.Name, count, lvunsorted));
    118           count = (count + 1) % 3;
     124          bool help = false;
     125          foreach (long client in inGroup) {
     126            if (client == ci.Id) {
     127              help = true;
     128              break;
     129            }
     130          }
     131          if (!help) {
     132            tvClientControl.Nodes.Add(ci.Name);
     133            ListViewItem item = null;
     134            if ((ci.State == State.offline) || (ci.State == State.nullState)) {
     135              item = new ListViewItem(ci.Name, 3, lvunsorted);
     136            } else {
     137              item = new ListViewItem(ci.Name, count, lvunsorted);
     138            }
     139
     140            lvClientControl.Items.Add(item);
     141            count = (count + 1) % 3;
     142          }
    119143        }
    120144        lvClientControl.BeginUpdate();
     
    287311    }
    288312
     313    private void Refresh() {
     314      foreach (Changes change in changes) {
     315        if (change.Types == Type.Job) {
     316          RefreshJob(change);
     317        } else if (change.Types == Type.Client) {
     318          RefreshClient(change);
     319        } else if (change.Types == Type.ClientGroup) {
     320          RefreshClientGroup(change);
     321        }
     322      }
     323    }
     324
     325    private void RefreshJob(Changes change) {
     326      if (change.ChangeType == Change.Update) {
     327        for (int i = 0; i < lvJobControl.Items.Count; i++) {
     328          if (lvJobControl.Items[i].Text == change.ID.ToString()) {
     329            State state = jobs.List[change.Position].State;
     330            System.Diagnostics.Debug.WriteLine(lvJobControl.Items[i].Text.ToString());
     331            if (state == State.finished) {
     332              lvJobControl.Items[i].Group = jobGroup[1];
     333              System.Diagnostics.Debug.WriteLine("finished");
     334            } else if (state == State.calculating) {
     335              lvJobControl.Items[i].Group = jobGroup[0];
     336              System.Diagnostics.Debug.WriteLine("calculating");
     337            } else if (state == State.offline) {
     338              lvJobControl.Items[i].Group = jobGroup[2];
     339              System.Diagnostics.Debug.WriteLine("offline");
     340
     341            }
     342            lvJobControl.Refresh();
     343          }
     344        }
     345      } else if (change.ChangeType == Change.Create) {
     346        ListViewItem lvi = new ListViewItem(
     347          change.ID.ToString(), 0, jobGroup[2]);
     348        jobObjects.Add(change.ID, lvi);
     349        lvJobControl.Items.Add(lvi);
     350
     351      } else if (change.ChangeType == Change.Delete) {
     352        jobObjects.Remove(change.Position);
     353        for (int i = 0; i < lvJobControl.Items.Count; i++) {
     354          lvJobControl.Items[i].Remove();
     355        }
     356      }
     357    }
     358
     359    private void RefreshClient(Changes change) {
     360      if (change.ChangeType == Change.Update) {
     361
     362      } else if (change.ChangeType == Change.Create) {
     363
     364      } else if (change.ChangeType == Change.Delete) {
     365
     366      }
     367    }
     368
     369    private void RefreshClientGroup(Changes change) {
     370
     371    }
     372
    289373    #region Eventhandlers
    290374    /// <summary>
     
    309393        closeFormEvent(true, false);
    310394      }
    311     }
    312 
    313     private void Refresh() {
    314       foreach (Changes change in changes) {
    315         if (change.Types == Type.Job) {
    316           if (change.ChangeType == Change.Update) {
    317             ListViewItem[] lviList = lvJobControl.Items.Find(change.ID.ToString(), true);
    318 
    319             lviList[0].Group = jobGroup[0];
    320            
    321             //if (jobObjects[change.ID].ListView.Groups.ToString() == ) {}
    322             //ListViewItem lvi = new ListViewItem(
    323             //  jobs.List[change.Position].Id.ToString(), 0);
    324           } else if (change.ChangeType == Change.Create) {
    325             ListViewItem lvi = new ListViewItem(
    326               change.ID.ToString(), 0, jobGroup[2]);
    327             jobObjects.Add(change.ID, lvi);
    328             lvJobControl.Items.Add(lvi);
    329 
    330           } else if (change.ChangeType == Change.Delete) {
    331             jobObjects.Remove(change.Position);
    332           }
    333 
    334         }
    335       }
    336 
    337395    }
    338396
     
    567625            if (job.State != State.offline) {
    568626              if (!IsEqual(job.Client, jobold.Client)) {
    569                 changes.Add(new Changes { Types = Type.Job, ID = job.Id, ChangeType = Change.Update });
     627                changes.Add(new Changes { Types = Type.Job, ID = job.Id, ChangeType = Change.Update, Position = i });
     628              } else if (job.State != jobold.State) {
     629                changes.Add(new Changes { Types = Type.Job, ID = job.Id, ChangeType = Change.Update, Position = i });
    570630              }
    571631            } else if (job.DateCalculated != jobold.DateCalculated) {
    572               changes.Add(new Changes { Types = Type.Job, ID = job.Id, ChangeType = Change.Update });
     632              changes.Add(new Changes { Types = Type.Job, ID = job.Id, ChangeType = Change.Update, Position = i });
    573633            }
    574634
  • branches/Hive_Management_Console_Refactoring_Ticket508/HeuristicLab.Hive.Server.Console/HiveServerManagementConsole.resx

    r1261 r1451  
    128128        AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
    129129        LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
    130         ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACo
    131         EwAAAk1TRnQBSQFMAgEBAwEAAQQBAAEEAQABIAEAASABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
    132         AwABgAMAASADAAEBAQABCAYAARAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
     130        ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAB0
     131        FwAAAk1TRnQBSQFMAgEBBAEAAQkBAAEEAQABIAEAASABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
     132        AwABgAMAAUADAAEBAQABCAYAASAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
    133133        AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
    134134        AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
     
    157157        AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
    158158        AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
    159         AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wEACzUCVgGXA3gBlwNW
    160         CjUBNAssAlMFdAFSAUwBTQssDEABRgFpBG8CRgxAIAAJNQJWAZgBBwG8A/ACvAHvAXgCVgQ1ATQDNQE0
    161         CSwBTQFSAZMBBwG8A/ACvAHvAXQBUgFNCSwKQAFpAZMBBwG8A/ACvAHvAW8BRgpAIAAINQFWAZgBvAHw
    162         BPEC8AHxAfACBwGYAVYFNAI1ATQILAFSAZMBvAHwBPEC8AHxAfACBwGTAUwCLAErBSwIQAFGAZMBvAHw
    163         BPEC8AHxAfACBwGTAUYCQAEgBUAgAAc1AVYB7wO8AfAD8QPwBAcB9wFQAi4FNAcsAVIBmQO8AfAD8QPw
    164         BAcB7wFuBCsDLAdAAUYBkwO8AfAD8QPwBAcB7wFoAukCIANAIAAGNQFWAZgDBwG8AfAC8QHwA7wCBwHv
    165         AvcB7QFPAi4ENAYsAU0BkwMHAbwB8ALxAfADvAIHAe8C9wHtAUsDKwMsB0ABkwMHAbwB8ALxAfADvAIH
    166         Ae8C9wHtAukCIANAIAAGNQFWAZgEBwG8A/ABvAMHAe8B9wHtAZIB7QFPBjQGLAFTAZMEBwG8A/ABvAMH
    167         Ae8B9wHtAZIBHAFLAysDLAdAAZMEBwG8A/ABvAMHAe8B9wHtAZIB7QHpAyADQCAABzUBlwHvBQcBvAIH
    168         Au8B7QLsAe0BkgFyAi4FNAcsAXQB7wUHAbwCBwLvAe0C7AHtAfcBcwErAUwCKwMsB0ABaQGTBQcBvAIH
    169         Au8B7QLsAe0BkgFuAukFQCAACDUBVgEcAe8BBwPvAZIC7AJtAesB7AH3Ae8B9wLvAXIENAgsAUwBHAIH
    170         A+8BkgLsAm0B6wHsAfcB7wEcAu8BdAQsCEABRgGTAe8BBwPvAZIC7AJtAesB7AH3Ae8BHALvAW8EQCAA
    171         CTUBNAFQAXIC7QXsAZIC7wEHAbwB8AG8Ae8BcwM1ATQJLAErAUwBbgHtAZIF7AGSAu8BBwG8AfABvAEH
    172         AXQELApAAUUBbgHsAe0F7AGSAu8BBwG8AfABvAHvAW8EQCAACjUBNAFVAVAD7AHtAfcBBwO8AQcB7wH3
    173         AgcBcwM1ATQLLAJMA+wB7QH3AQcDvAEHAe8B9wIHARwELAxAAUUD7AHtAfcBBwO8AQcB7wH3AgcBjQRA
    174         IAAFNQI0AlABcgHtAZIB9wPvAgcB7wHtAW0BEwEVAREBFQHsAbwB7QFWAjUBNAUsASsCTAFLAXMB7QL3
    175         A+8CBwHvAe0BbQETARUBEQEVAewBvAEcAU0DLAdAAUYBRQFuAe0BkgH3A+8CBwHvAe0BbQETARUBEQEV
    176         AewBvAHtBEAgAAE1AlYBcgHsAe0B9wUHAe8B9wHsAW0BFAJDAhEDQwEUAewBvAHtAVYCNQE0ASwBTQFM
    177         AXMB7AHtAe8FBwHvAfcB7AFtARQCQwIRA0MBFAHsAbwBHAFTAywBQAJGAm4B7QH3BQcB7wH3AewBbQEU
    178         AkMCEQNDARQB7AG8AZIBRgNAIAABNQGXAe0C7wMHAfcB7AHqARUBEQMQARECFQUUARMB7AG8ARwBVgI1
    179         ATQBLAF0Ae0C7wMHAfcB7AHqARUBEQMQARECFQUUARMB7AG8ARwBUgMsAUABaQHtAu8DBwH3AewB6gEV
    180         AREDEAERAhUFFAETAewBvAGSAUYDQCAAATUBeAH3Ae0B7AFtARUBEAMPAxACEQEVARQCEwUSAewBvAH3
    181         AVYCNQE0ASwBdAH3Ae0B7AFtARUBEAMPAxACEQEVARQCEwUSAewBvAEcAVIDLAFAAW8B9wHtAewBbQEV
    182         ARADDwMQAhEBFQEUAhMFEgHsAbwB9wFGA0AgAAE1AXgB9wERCBADEQFDARQBEgLqBW0B7AG8Ae8BVgI1
    183         ATQBLAF1AfcBEQgQAxEBQwEUARIC6gVtAewBvAHvAVIDLAFAAW8B9wERCBADEQFDARQBEgLqBW0B7AG8
    184         Ae8BaQNAIAABNQFWAe8BFQERAUMDEQIQAxECQwETBG0E6wHsAQcB7wGXAjUBNAEsAVMB7wEVAREBQwMR
    185         AhADEQJDARMEbQTrAewBBwHvAXQDLAFAARcB7wEVAREBQwMRAhADEQJDARMEbQTrAewBBwHvAW8DQCAA
    186         ATUBVgHvARMBQwEVAkMBEQEQAxECQwEVAeoJ7AIHAXMCNQE0ASwBUwHvARMBQwEVAkMBEQEQAxECQwEV
    187         AeoJ7AIHAXQDLAFAAUYB7wETAUMBFQJDAREBEAMRAkMBFQHqCewBBwHvAW8DQCAAATUBVgHvAW0BFQIU
    188         ARUEEQNDARQBbQXsA+0B7AIHAXMCNQE0ASwBUwHvAW0BFQIUARUEEQNDARQBbQXsA+0B7AIHARwDLAJA
    189         Ae8BbQEVAhQBFQQRA0MBFAFtBewD7QHsAgcBbgNAIAACNQHvAesBFQETARIBFAMRBEMBEwHsBpIB9wKS
    190         Ae8BvAHtAjUBNAIsAe8B6wEVARMBEgEUAxEEQwETAewGkgH3ApIB7wG8ARwDLAJAAZMB6wEVARMBEgEU
    191         AxEEQwETAewGkgH3ApIB7wG8Ae0DQCAAAjUBmAHsARQC6gEVAxEDQwEVARIB7AHvAvcF7wH3Ae8B8AHt
    192         AjUBNAIsAZkB7AEUAuoBFQMRA0MBFQESAewB7wL3Be8B9wHvAfABHAFNAiwCQAGTAewBFALqARUDEQND
    193         ARUBEgHsAe8C9wXvAfcB7wHwAe0DQCAAAjUBmAH3ARQBbQHqAUMCEQNDAhUBbQGSBe8DBwLvAfABkgFW
    194         ATUBNAIsAZMB9wEUAW0B6gFDAhEDQwIVAW0BkgXvAwcC7wHwARwBUgIsAkABkwH3ARQBbQHqAUMCEQND
    195         AhUBbQGSBe8DBwLvAfAB7QFGAkAgAAI1AXgB9wETAW0BEgIRA0MCFQEUAewB7wYHArwCBwHwAZIBVgE1
    196         ATQCLAF0Ae8BEwFtARICEQNDAhUBFAHsAe8GBwK8AgcB8AEcAVICLAJAAW8B9wETAW0BEgIRA0MCFQEU
    197         AewB7wYHArwCBwHwAZIBRgJAIAACNQF4Ae8BEwFtARUBEQJDAhUCFAETAewFvATwAbwBBwHwAfcBlwE1
    198         ATQCLAF0Ae8BEwFtARUBEQJDAhUCFAETAewFvATwAbwBBwHwARwBdAIsAkABbwH3ARMBbQEVARECQwIV
    199         AhQBEwHsBbwE8AG8AQcB8AH3AWkCQCAAAjUBVgHvAhIBQwERAkMCFQIUAeoB9wXwBfEBBwHwAe8BlwE1
    200         ATQCLAFTAe8CEgFDARECQwIVAhQB6gH3BfAF8QEHAfAB7wF0AiwCQAFGAe8CEgFDARECQwIVAhQB6gH3
    201         BfAF8QEHAfAB7wFvAkAgAAI1AVYB7wESARUBEQJDAhUDFAFtAQcB8gTxBfIBvAHxAe8BcgE1ATQCLAFT
    202         Ae8BEgEVARECQwIVAxQBbQEHAfIE8QXyAbwB8QHvAXQCLAJAAUYB7wESARUBEQJDAhUDFAFtAQcB8gTx
    203         BfIBvAHxAe8BbwJAIAADNQEcARICEQJDAhUCFAETAewB8AXyBfMC8QG8AXMBNQE0AiwBTQGTARICEQJD
    204         AhUCFAETAewB8AXyBfMC8QG8AXQCLANAAZMBEgIRAkMCFQIUARMB7AHwBfIF8wLxAbwBbgJAIAADNQGY
    205         AW0CEQJDAhUCFAETAZIB8gjzAfIB8QEHAvAB7QE1ATQDLAGTAW0CEQJDAhUCFAETAZIB8gjzAfIB8QEH
    206         AvAB7QFNASwDQAGTAW0CEQJDAhUCFAETAZIB8gjzAfIB8QEHAvAB7AJAIAADNQGYAewBQwERAkMCFQIU
    207         ARIB7wHyAfEB8AO8BQcBvALxARwBNQE0AywBHAHsAUMBEQJDAhUCFAESAe8B8gHxAfADvAUHAbwC8QEc
    208         AU0BLANAAZMB7AFDARECQwIVAhQBEgHvAfIB8QHwA7wFBwG8AvEB7QJAIAADNQGYAe0BFQIRAkMBFQIU
    209         AeoB7QPvAgcEvAEIApkCmAFWATUBNAMsAZMB7QEVAhECQwEVAhQB6gHtA+8CBwW8A5kBkwFTAiwDQAGO
    210         Ae0BFQIRAkMBFQIUAeoB7QPvAgcEvAEHA5MBjgFGAkAgAAM1AXgB9wIUAeoBbQHsAZIB7wEHArwBBwII
    211         AZkDmAN4BVYBNQE0AywBdAH3AhQB6gFtAewBkgHvAQcDvAEHA5kCkwJ0AXUFUwIsA0ABbwH3AhQB6gFt
    212         AewBkgHvAQcCvAIHBZMBjgJvAWkERgJAIAADNQF4Ae8BBwG8AQcCCAGZApgCeAZWCjUBNAMsAXQCBwK8
    213         AQcDmQGTAXQBdQVTAU0LLANAAW8B7wEHAbwDBwOTAm8BaQNGDUAgAAQ1AVYBlwNWFjUBNAQsAVMBdQNT
    214         FywEQANpAkYXQCAAAUIBTQE+BwABPgMAASgDAAGAAwABIAMAAQEBAAEBBgABAhYAA///AP8AAwAL
     159        AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8A/wD/AP8A
     160        /wD/AP8A/wD/AP8A/wD/AP8AEQALNQJWAZcDeAGXA1YKNQE0CywCUwV0AVIBTAFNCywMQAFGAWkEbwJG
     161        DEAfkgHtCTUCVgGYAQcBvAPwArwB7wF4AlYENQE0AzUBNAksAU0BUgGTAQcBvAPwArwB7wF0AVIBTQks
     162        CkABaQGTAQcBvAPwArwB7wFvAUYKQAuSAfcBBwG8AvACvAHuAe8LkgHtCDUBVgGYAbwB8ATxAvAB8QHw
     163        AgcBmAFWBTQCNQE0CCwBUgGTAbwB8ATxAvAB8QHwAgcBkwFMAiwBKwUsCEABRgGTAbwB8ATxAvAB8QHw
     164        AgcBkwFGAkABIAVACZIB7wG8AfAE8QLwAfEBvAIHAe8IkgHtBzUBVgHvA7wB8APxA/AEBwH3AVACLgU0
     165        BywBUgGZA7wB8APxA/AEBwHvAW4EKwMsB0ABRgGTA7wB8APxA/AEBwHvAWgC6QIgA0AIkgEHA7wB8APx
     166        A/AEBwHvAewGkgHtBjUBVgGYAwcBvAHwAvEB8AO8AgcB7wL3Ae0BTwIuBDQGLAFNAZMDBwG8AfAC8QHw
     167        A7wCBwHvAvcB7QFLAysDLAdAAZMDBwG8AfAC8QHwA7wCBwHvAvcB7QLpAiADQAeSAe8DBwG8AfAC8QHw
     168        A7wCBwHvA/cB7QWSAe0GNQFWAZgEBwG8A/ABvAMHAe8B9wHtAZIB7QFPBjQGLAFTAZMEBwG8A/ABvAMH
     169        Ae8B9wHtAZIBHAFLAysDLAdAAZMEBwG8A/ABvAMHAe8B9wHtAZIB7QHpAyADQAeSAe8EBwG8A/ABvAMH
     170        Ae8B9wHtAZIB9waSAe0HNQGXAe8FBwG8AgcC7wHtAuwB7QGSAXICLgU0BywBdAHvBQcBvAIHAu8B7QLs
     171        Ae0B9wFzASsBTAIrAywHQAFpAZMFBwG8AgcC7wHtAuwB7QGSAW4C6QVAB5IB7QHvBQcBvAIHAu8B7QLs
     172        Ae0IkgHtCDUBVgEcAe8BBwPvAZIC7AJtAesB7AH3Ae8B9wLvAXIENAgsAUwBHAIHA+8BkgLsAm0B6wHs
     173        AfcB7wEcAu8BdAQsCEABRgGTAe8BBwPvAZIC7AJtAesB7AH3Ae8BHALvAW8EQAmSAfcF7wGSAewB+AJt
     174        AesB7AH3Ae8B9wLvAe0DkgHtCTUBNAFQAXIC7QXsAZIC7wEHAbwB8AG8Ae8BcwM1ATQJLAErAUwBbgHt
     175        AZIF7AGSAu8BBwG8AfABvAEHAXQELApAAUUBbgHsAe0F7AGSAu8BBwG8AfABvAHvAW8EQAuSA+0B7AL4
     176        AuwBkgLvAQcBvAHwAbwBBwHtA5IB7Qo1ATQBVQFQA+wB7QH3AQcDvAEHAe8B9wIHAXMDNQE0CywCTAPs
     177        Ae0B9wEHA7wBBwHvAfcCBwEcBCwMQAFFA+wB7QH3AQcDvAEHAe8B9wIHAY0EQA2SAe0C7AHtAfcBBwO8
     178        AQcB7wH3AgcEkgHtBTUCNAJQAXIB7QGSAfcD7wIHAe8B7QFtARMBFQERARUB7AG8Ae0BVgI1ATQFLAEr
     179        AkwBSwFzAe0C9wPvAgcB7wHtAW0BEwEVAREBFQHsAbwBHAFNAywHQAFGAUUBbgHtAZIB9wPvAgcB7wHt
     180        AW0BEwEVAREBFQHsAbwB7QRACZIC7QGSAfcD7wIHAe8B7QFtARMBFQERARUB7AG8BJIB7QE1AlYBcgHs
     181        Ae0B9wUHAe8B9wHsAW0BFAJDAhEDQwEUAewBvAHtAVYCNQE0ASwBTQFMAXMB7AHtAe8FBwHvAfcB7AFt
     182        ARQCQwIRA0MBFAHsAbwBHAFTAywBQAJGAm4B7QH3BQcB7wH3AewBbQEUAkMCEQNDARQB7AG8AZIBRgNA
     183        BJIB7AHtAfcFBwHvAfcB7AFtARQCQwIRA0MBFAHsAbwB9wOSAe0BNQGXAe0C7wMHAfcB7AHqARUBEQMQ
     184        ARECFQUUARMB7AG8ARwBVgI1ATQBLAF0Ae0C7wMHAfcB7AHqARUBEQMQARECFQUUARMB7AG8ARwBUgMs
     185        AUABaQHtAu8DBwH3AewB6gEVAREDEAERAhUFFAETAewBvAGSAUYDQAKSAe0C7wMHAfcB7AHqARUBEQMQ
     186        ARECFQUUARMB7AG8AfcDkgHtATUBeAH3Ae0B7AFtARUBEAMPAxACEQEVARQCEwUSAewBvAH3AVYCNQE0
     187        ASwBdAH3Ae0B7AFtARUBEAMPAxACEQEVARQCEwUSAewBvAEcAVIDLAFAAW8B9wHtAewBbQEVARADDwMQ
     188        AhEBFQEUAhMFEgHsAbwB9wFGA0ACkgH3Ae0B7AFtARUBEAMPAxACEQEVARQCEwUSAfgBvAHvA5IB7QE1
     189        AXgB9wERCBADEQFDARQBEgLqBW0B7AG8Ae8BVgI1ATQBLAF1AfcBEQgQAxEBQwEUARIC6gVtAewBvAHv
     190        AVIDLAFAAW8B9wERCBADEQFDARQBEgLqBW0B7AG8Ae8BaQNAAZIB7QH3AREIEAMRAUMBFAESAuoFbQH4
     191        AbwB7wOSAe0BNQFWAe8BFQERAUMDEQIQAxECQwETBG0E6wHsAQcB7wGXAjUBNAEsAVMB7wEVAREBQwMR
     192        AhADEQJDARMEbQTrAewBBwHvAXQDLAFAARcB7wEVAREBQwMRAhADEQJDARMEbQTrAewBBwHvAW8DQAKS
     193        Ae8BFQERAUMDEQIQAxECQwETBG0E6wHsAQcB7wHtApIB7QE1AVYB7wETAUMBFQJDAREBEAMRAkMBFQHq
     194        CewCBwFzAjUBNAEsAVMB7wETAUMBFQJDAREBEAMRAkMBFQHqCewCBwF0AywBQAFGAe8BEwFDARUCQwER
     195        ARADEQJDARUB6gnsAQcB7wFvA0ACkgHvARMBQwEVAkMBEQEQAxECQwEVAeoF+ATsAgcB7QKSAe0BNQFW
     196        Ae8BbQEVAhQBFQQRA0MBFAFtBewD7QHsAgcBcwI1ATQBLAFTAe8BbQEVAhQBFQQRA0MBFAFtBewD7QHs
     197        AgcBHAMsAkAB7wFtARUCFAEVBBEDQwEUAW0F7APtAewCBwFuA0ACkgHvAW0BFQIUARUEEQNDARQBbQXs
     198        A+0B7AIHAe0CkgHtAjUB7wHrARUBEwESARQDEQRDARMB7AaSAfcCkgHvAbwB7QI1ATQCLAHvAesBFQET
     199        ARIBFAMRBEMBEwHsBpIB9wKSAe8BvAEcAywCQAGTAesBFQETARIBFAMRBEMBEwHsBpIB9wKSAe8BvAHt
     200        A0ACkgHvAesBFQETARIBFAMRBEMBEwH4BpIB9wKSAe8BvAHtApIB7QI1AZgB7AEUAuoBFQMRA0MBFQES
     201        AewB7wL3Be8B9wHvAfAB7QI1ATQCLAGZAewBFALqARUDEQNDARUBEgHsAe8C9wXvAfcB7wHwARwBTQIs
     202        AkABkwHsARQC6gEVAxEDQwEVARIB7AHvAvcF7wH3Ae8B8AHtA0ACkgHvAewBFALqARUDEQNDARUBEgHs
     203        Ae8C9wXvAfcB7wHwAfcCkgHtAjUBmAH3ARQBbQHqAUMCEQNDAhUBbQGSBe8DBwLvAfABkgFWATUBNAIs
     204        AZMB9wEUAW0B6gFDAhEDQwIVAW0BkgXvAwcC7wHwARwBUgIsAkABkwH3ARQBbQHqAUMCEQNDAhUBbQGS
     205        Be8DBwLvAfAB7QFGAkAB7QGSAfcBkgEUAW0B6gFDAhEDQwIVAW0BkgXvAwcC7wHwAfcCkgHtAjUBeAH3
     206        ARMBbQESAhEDQwIVARQB7AHvBgcCvAIHAfABkgFWATUBNAIsAXQB7wETAW0BEgIRA0MCFQEUAewB7wYH
     207        ArwCBwHwARwBUgIsAkABbwH3ARMBbQESAhEDQwIVARQB7AHvBgcCvAIHAfABkgFGAkAB7QKSAfcBEwFt
     208        ARICEQNDAhUBFAH4Ae8GBwK8AgcB8AH3ApIB7QI1AXgB7wETAW0BFQERAkMCFQIUARMB7AW8BPABvAEH
     209        AfAB9wGXATUBNAIsAXQB7wETAW0BFQERAkMCFQIUARMB7AW8BPABvAEHAfABHAF0AiwCQAFvAfcBEwFt
     210        ARUBEQJDAhUCFAETAewFvATwAbwBBwHwAfcBaQJAAe0CkgHvARMBbQEVARECQwIVAhQBEwHsBbwE8AG8
     211        AQcB8AH3ApIB7QI1AVYB7wISAUMBEQJDAhUCFAHqAfcF8AXxAQcB8AHvAZcBNQE0AiwBUwHvAhIBQwER
     212        AkMCFQIUAeoB9wXwBfEBBwHwAe8BdAIsAkABRgHvAhIBQwERAkMCFQIUAeoB9wXwBfEBBwHwAe8BbwJA
     213        Ae0CkgHvAhIBQwERAkMCFQIUAeoB9wXwBfEBBwHwAe8B7QGSAe0CNQFWAe8BEgEVARECQwIVAxQBbQEH
     214        AfIE8QXyAbwB8QHvAXIBNQE0AiwBUwHvARIBFQERAkMCFQMUAW0BBwHyBPEF8gG8AfEB7wF0AiwCQAFG
     215        Ae8BEgEVARECQwIVAxQBbQEHAfIE8QXyAbwB8QHvAW8CQAHtApIB7wESARUBEQJDAhUDFAFtAQcB8gTx
     216        BfIBvAHxAQcB7QGSAe0DNQEcARICEQJDAhUCFAETAewB8AXyBfMC8QG8AXMBNQE0AiwBTQGTARICEQJD
     217        AhUCFAETAewB8AXyBfMC8QG8AXQCLANAAZMBEgIRAkMCFQIUARMB7AHwBfIF8wLxAbwBbgJAA5IB7wES
     218        AhECQwIVAhQBEwHsAfAF8gXzAvEB7gHtAZIB7QM1AZgBbQIRAkMCFQIUARMBkgHyCPMB8gHxAQcC8AHt
     219        ATUBNAMsAZMBbQIRAkMCFQIUARMBkgHyCPMB8gHxAQcC8AHtAU0BLANAAZMBbQIRAkMCFQIUARMBkgHy
     220        CPMB8gHxAQcC8AHsAkADkgHvAW0CEQJDAhUCFAETAZIB8gjzAfIB8QEHAvAB7QGSAe0DNQGYAewBQwER
     221        AkMCFQIUARIB7wHyAfEB8AO8BQcBvALxARwBNQE0AywBHAHsAUMBEQJDAhUCFAESAe8B8gHxAfADvAUH
     222        AbwC8QEcAU0BLANAAZMB7AFDARECQwIVAhQBEgHvAfIB8QHwA7wFBwG8AvEB7QJABJIB+AFDARECQwIV
     223        AhQBEgHvAfIB8QHwA7wGBwLxApIB7QM1AZgB7QEVAhECQwEVAhQB6gHtA+8CBwS8AQgCmQKYAVYBNQE0
     224        AywBkwHtARUCEQJDARUCFAHqAe0D7wIHBbwDmQGTAVMCLANAAY4B7QEVAhECQwEVAhQB6gHtA+8CBwS8
     225        AQcDkwGOAUYCQASSAe0BFQIRAkMBFQIUAeoB7QPvAgcEvAEIAe8B9wSSAe0DNQF4AfcCFAHqAW0B7AGS
     226        Ae8BBwK8AQcCCAGZA5gDeAVWATUBNAMsAXQB9wIUAeoBbQHsAZIB7wEHA7wBBwOZApMCdAF1BVMCLANA
     227        AW8B9wIUAeoBbQHsAZIB7wEHArwCBwWTAY4CbwFpBEYCQASSAfcCFAHqAW0B7AGSAe8BBwG8Ae4BBwEI
     228        Ae8C9wuSAe0DNQF4Ae8BBwG8AQcCCAGZApgCeAZWCjUBNAMsAXQCBwK8AQcDmQGTAXQBdQVTAU0LLANA
     229        AW8B7wEHAbwDBwOTAm8BaQNGDUACkgLtAe8BBwHuAQcCCAHvAfcTkgHtBDUBVgGXA1YWNQE0BCwBUwF1
     230        A1MXLARAA2kCRhdAA5IB7RuSAe0BQgFNAT4HAAE+AwABKAMAAYADAAFAAwABAQEAAQEGAAEEFgAD//8A
     231        /wD/AP8ABQAL
    215232</value>
    216233  </data>
Note: See TracChangeset for help on using the changeset viewer.