static void Main(string[] args)
        {
            int[,] matr1 = { { 1, 2, 3 }, 
                            { 1, 2, 3 }, 
                            { 1, 2, 3 } };
            SquareMatrix<int> matrix1 = new SquareMatrix<int>(matr1);

            int[,] matr2 = { { 1, 0, 0 }, 
                            { 0, 2, 0 }, 
                            { 0, 0, 3 } };
            DiagonalMatrix<int> matrix2 = new DiagonalMatrix<int>(matr2);

            int[,] matr3 = { { 1, 5, 3 }, 
                            { 5, 2, 7 }, 
                            { 3, 7, 3 } };
            SymmetricMatrix<int> matrix3 = new SymmetricMatrix<int>(matr3);

            var squar = new Listeners<int>();
            squar.Register(matrix1);
            squar.Register(matrix2);
            squar.Register(matrix3);

             matrix1[1, 2] = 3;
             matrix2[2, 2] = 3;
             matrix3[1, 0] = 3;


             SquareMatrix<int> output = matrix1.Sum(matrix2, (x, y) => x + y);
             SquareMatrix<int> output2 = matrix1.Sum(matrix2);
             Console.WriteLine();
            }
Example #2
0
        private void OnReset(FileStream stream,
                             out int numberOfLinesRead,
                             out long lastPosition)
        {
            lastPosition = 0;
            if (stream != null)
            {
                stream.Position = 0;
            }

            numberOfLinesRead = 0;
            _properties.SetValue(LogFileProperties.StartTimestamp, null);
            _properties.SetValue(LogFileProperties.EndTimestamp, null);
            _maxCharactersPerLine = 0;

            _entries.Clear();
            Listeners.Reset();
        }
        /// <summary>
        /// Invokes all listeners
        /// </summary>
        private void InvokeAllListeners()
        {
            for (int index = Listeners.Count - 1; index >= 0; index--)
            {
                if (Listeners[index] == null)
                {
                    Listeners.RemoveAt(index);
                    continue;
                }

                if (_debug)
                {
                    Debug.Log($"Listener <b>{Listeners[index]}</b> was called.");
                }

                Listeners[index].OnEventInvoked();
            }
        }
Example #4
0
 private void NotifyListeners(IEnumerable <LogFileSection> changes)
 {
     foreach (var section in changes)
     {
         if (section.IsInvalidate)
         {
             Listeners.Invalidate((int)section.Index, section.Count);
         }
         else if (section.IsReset)
         {
             Listeners.Reset();
         }
         else
         {
             Listeners.OnRead((int)(section.Index + section.Count));
         }
     }
 }
Example #5
0
 private void ListenerDoEvent(ViewportEvent e, Action <IViewportEventListener, ViewportEvent> action)
 {
     foreach (var listener in Listeners.Where(x => x.IsActive()).OrderBy(x => x.OrderHint))
     {
         try
         {
             action(listener, e);
         }
         catch (Exception ex)
         {
             OnListenerException(ex);
         }
         if (e.Handled)
         {
             break;
         }
     }
 }
Example #6
0
 private void NotifyListeners(IEnumerable <LogSourceModification> changes)
 {
     foreach (var section in changes)
     {
         if (section.IsRemoved(out var removedSection))
         {
             Listeners.Remove((int)removedSection.Index, removedSection.Count);
         }
         else if (section.IsReset())
         {
             Listeners.Reset();
         }
         else if (section.IsAppended(out var appendedSection))
         {
             Listeners.OnRead((int)(appendedSection.Index + appendedSection.Count));
         }
     }
 }
        private Boolean setupListeners()
        {
            AuthentificationListener auth             = new AuthentificationListener();
            ChannelListener          channelsListener = new ChannelListener();

            if (!Listeners.TryAdd(typeof(LoginPacket), auth))
            {
                return(false);
            }
            if (!Listeners.TryAdd(typeof(WelcomePacket), auth))
            {
                return(false);
            }
            if (!Listeners.TryAdd(typeof(RegisterPacket), auth))
            {
                return(false);
            }
            if (!Listeners.TryAdd(typeof(LoginTokenPacket), auth))
            {
                return(false);
            }
            if (!Listeners.TryAdd(typeof(GetChannelPacket), channelsListener))
            {
                return(false);
            }
            if (!Listeners.TryAdd(typeof(NewMessagePacket), channelsListener))
            {
                return(false);
            }
            if (!Listeners.TryAdd(typeof(RenameChannelPacket), channelsListener))
            {
                return(false);
            }
            if (!Listeners.TryAdd(typeof(CreateChannelPacket), channelsListener))
            {
                return(false);
            }
            if (!Listeners.TryAdd(typeof(DeleteChannelPacket), channelsListener))
            {
                return(false);
            }

            return(true);
        }
Example #8
0
 public void Leave(string connectionId)
 {
     lock (Loginstate)
     {
         var index = Feeders.IndexOf(connectionId);
         if (index != -1)
         {
             Feeders.Remove(connectionId);
         }
         else
         {
             index = Listeners.IndexOf(connectionId);
             if (index != -1)
             {
                 Listeners.Remove(connectionId);
             }
         }
     }
 }
        private void AddListener(IEventListener listener, Type eventType)
        {
            var dlist = new List <IEventListener>();

            if (Listeners.TryGetValue(eventType, out dlist))
            {
                if (!dlist.Contains(listener))
                {
                    dlist.Add(listener);
                }
            }
            else
            {
                dlist = new List <IEventListener> {
                    listener
                };
                Listeners.TryAdd(eventType, dlist);
            }
        }
Example #10
0
        /// <summary>
        /// Removes the listener from the specified priority level.
        /// </summary>
        /// <param name="priority">Priority that the listener was registered under.</param>
        /// <param name="callback">Function that was registered as a listener.</param>
        public static void RemoveListener(int priority, EventCallback callback)
        {
            if (callback == null)
            {
                throw new ArgumentException(nameof(callback), $"Trying to remove a callback with null value from event type '{GenericTypeName}'.");
            }

            // Check there is a list of listeners for this priority
            if (Listeners.TryGetValue(priority, out List <EventCallback> listeners))
            {
                listeners.Remove(callback);

                // Remove this priority if there are no more listeners
                if (listeners == null || listeners.Count == 0)
                {
                    Listeners.RemoveAt(priority);
                }
            }
        }
Example #11
0
        /// <summary>
        /// Adds a listener for this event type.
        /// </summary>
        /// <param name="priority">Priority of the listener. A lower value means the callback will be called earlier.</param>
        /// <param name="callback">Function to call when the event is fired.</param>
        public static void RegisterListener(int priority, EventCallback callback)
        {
            if (callback == null)
            {
                throw new ArgumentException(nameof(callback), $"Callback for event '{GenericTypeName}' cannot be null.");
            }

            // Check there is a list of listeners for this priority. If there isn't create one
            if (Listeners.TryGetValue(priority, out List <EventCallback> listeners))
            {
                listeners.Add(callback);
            }
            else
            {
                Listeners.Add(priority, new List <EventCallback> {
                    callback
                });
            }
        }
        public override bool Start()
        {
            if (!base.Start())
            {
                return(false);
            }

            ILog log = AppServer.Logger;

            for (var i = 0; i < ListenerInfos.Length; i++)
            {
                var listener = CreateListener(ListenerInfos[i]);
                listener.Error             += new ErrorHandler(listener_Error);
                listener.NewClientAccepted += new NewClientAcceptHandler(AcceptNewClient);

                if (listener.Start())
                {
                    Listeners.Add(listener);

                    if (log.IsDebugEnabled)
                    {
                        log.DebugFormat("Listener ({0}) was started", listener.EndPoint);
                    }
                }
                else //If one listener failed to start, stop started listeners
                {
                    if (log.IsDebugEnabled)
                    {
                        log.DebugFormat("Listener ({0}) failed to start", listener.EndPoint);
                    }

                    for (var j = 0; j < Listeners.Count; j++)
                    {
                        Listeners[j].Stop();
                    }

                    Listeners.Clear();
                    return(false);
                }
            }

            return(true);
        }
Example #13
0
        /// <summary>
        /// Изменяет размер уровня до заданных ширины и высоты.
        /// </summary>
        /// <param name="width">Ширина</param>
        /// <param name="height">Высота</param>
        public void Resize(int width, int height)
        {
            List <Block> newBlocks = new List <Block>();

            for (int y = 0; y < height; y++)
            {
                for (int x = 0; x < width; x++)
                {
                    Block block = null;
                    if (x < Width && y < Height)
                    {
                        block = Blocks[y * Width + x];
                    }
                    newBlocks.Add(block);
                }
            }

            Width  = width;
            Height = height;

            Blocks = new ObservableCollection <Block>(newBlocks);

            // Возможно, стоит сделать более серьезные проверки, но мне люто хочется спать.
            // Сейчас выпиливаются объекты, левый верхний угол которых лежит за пределами уровня, но учитывая
            // различные поправки к координатам, этот способ далеко не идеален.
            if (Areas != null)
            {
                Areas = new ObservableCollection <Area>(
                    Areas.ToList().FindAll(area => area.X + area.Width < width && area.Y + area.Height < height));
            }
            if (Listeners != null)
            {
                Listeners = new ObservableCollection <Listener>(
                    Listeners.ToList().FindAll(listener => listener.X < width && listener.Y < height));
            }
            if (Entities != null)
            {
                Entities = new ObservableCollection <Entity>(
                    Entities.ToList().FindAll(entity => entity.X < width && entity.Y < height));
            }

            OnLevelResize();
        }
Example #14
0
        /// <summary>
        /// 持续监听处理
        /// </summary>
        public static void Update()
        {
            if (MsgList.Count <= 0)
            {
                return;
            }

            //解析数据
            var msgStr  = MsgList.Dequeue();   //获得消息队列的首个元素并出队
            var data    = msgStr.Split('|');
            var msgName = data[0];
            var msgArgs = data[1];

            //回调监听
            if (Listeners.ContainsKey(msgName))
            {
                Listeners[msgName](msgArgs);
            }
        }
Example #15
0
        /// <summary>
        /// Subscribe to size changes of the browser window using the provided options
        /// </summary>
        /// <param name="callback">The method (callbacK) that is invoke as soon as the size of the window has changed</param>
        /// <param name="options"></param>
        /// <returns>The subscription id. This id is needed for unscribe</returns>
        public async Task <Guid> Subscribe(Action <BrowserWindowSize> callback, ResizeOptions options)
        {
            if (callback is null)
            {
                throw new ArgumentNullException(nameof(callback));
            }

            options ??= _options;

            if (DotNetRef == null)
            {
                DotNetRef = DotNetObjectReference.Create(this);
            }

            var existingOptionId = Listeners.Where(x => x.Value.Option == options).Select(x => x.Key).FirstOrDefault();

            if (existingOptionId == default)
            {
                var subscriptionInfo = new ResizeServiceSubscriptionInfo(options);
                var subscriptionId   = subscriptionInfo.AddSubscription(callback);
                var listenerId       = Guid.NewGuid();

                Listeners.Add(listenerId, subscriptionInfo);

                try
                {
                    await JsRuntime.InvokeVoidAsync($"mudResizeListenerFactory.listenForResize", DotNetRef, options, listenerId);
                }
                catch (TaskCanceledException)
                {
                    // no worries here
                }

                return(subscriptionId);
            }
            else
            {
                var entry          = Listeners[existingOptionId];
                var subscriptionId = entry.AddSubscription(callback);

                return(subscriptionId);
            }
        }
        public virtual bool Start()
        {
            IsStopped = false;

            ILog log = AppServer.Logger;

            for (var i = 0; i < ListenerInfos.Length; i++)
            {
                var listener = CreateListener(ListenerInfos[i]);
                listener.Error             += new ErrorHandler(OnListenerError);
                listener.Stopped           += new EventHandler(OnListenerStopped);
                listener.NewClientAccepted += new NewClientAcceptHandler(OnNewClientAccepted);

                if (listener.Start(AppServer.Config))
                {
                    Listeners.Add(listener);

                    if (log.IsDebugEnabled)
                    {
                        log.DebugFormat("Listener ({0}) was started", listener.EndPoint);
                    }
                }
                else //If one listener failed to start, stop started listeners
                {
                    if (log.IsDebugEnabled)
                    {
                        log.DebugFormat("Listener ({0}) failed to start", listener.EndPoint);
                    }

                    for (var j = 0; j < Listeners.Count; j++)
                    {
                        Listeners[j].Stop();
                    }

                    Listeners.Clear();
                    return(false);
                }
            }

            IsRunning = true;
            return(true);
        }
Example #17
0
        private void InitCollectionView(List <ListenerInfo> listeners)
        {
            _originalListenerList = listeners;

            HasSystemListeners = listeners.Any(q => q.ListenerSource.IsSystemListener);

            ListenersFilterView = (CollectionView)CollectionViewSource.GetDefaultView(listeners);
            Listeners.Clear();
            using (_filterProgressScope = Progress.Start(listeners.Count, LongRunningState.No))
            {
                using (ListenersFilterView.DeferRefresh())
                {
                    ListenersFilterView.Filter = OnListenersViewFilter;
                    ListenersFilterView.SortDescriptions.Add(
                        new SortDescription("Name", ListSortDirection.Ascending));
                }
            }

            StatusInfoViewModel.LastUpdateTimestamp = DateTime.Now;
        }
Example #18
0
        public bool AddSnippet(object sender, AbstractSnippet snippet)
        {
            // Prevents duplicate sources
            if (Snippets.Contains(snippet))
            {
                return(false);
            }

            Snippets.Add(snippet);

            // Update settings to include newly added snippet
            var snippetsOfType = Snippets.Where(s => s.GetType() == snippet.GetType());

            AppSettings.PutAndSave(GetKey(snippet), snippetsOfType);

            // Notify listeners that a new snippet was added
            Listeners.ForEach(listener => listener.SnippetAdded(sender, this, snippet));

            return(true);
        }
Example #19
0
 public void MyTearDown()
 {
     try
     {
         var status = TestContext.CurrentContext.Result.Outcome.Status;
         if (status == TestStatus.Failed)
         {
             var listener = new Listeners();
             var report   = TestContext.CurrentContext.Result;
             listener.OnTestEvent(TestContext.CurrentContext.Test.Name);
         }
         Base.StopServer();
         GlobalVar.AndroidDriver.Close();
     }
     catch (Exception e)
     {
         //GlobalVar.AndroidDriver.Quit();
         Assert.Fail(e.Message);
     }
 }
Example #20
0
        protected override void Dispose(bool disposing)
        {
            if (Context != null && !Context.IsDisposed)
            {
                foreach (var dis in Listeners.OfType <IDisposable>())
                {
                    try {
                        dis.Dispose();
                    } catch {
                        // Don't care
                    }
                }
            }
            Listeners.Clear();

            RenderContext.Dispose();
            UpdateTimer.Dispose();
            _stopwatch.Stop();
            base.Dispose(disposing);
        }
        /// <summary>
        /// Remove all interfaces attached the global listener gameobject.
        /// If no interface is found, remove is ignored.
        /// </summary>
        /// <param name="gameObjectToRemove">The gameobject which listens globally.</param>
        public void Remove(GameObject gameObjectToRemove)
        {
            if (gameObjectToRemove == null)
            {
                return;
            }

            // todo: macht wenig sinn alles zu löschen
            //RemoveEmptyListeners();

            IStylusInputHandler[] inputHandlers = gameObjectToRemove.GetComponents <IStylusInputHandler>();

            if (inputHandlers == null)
            {
                return;
            }

            DeregisterInputHandlers(inputHandlers);
            Listeners.Remove(gameObjectToRemove);
        }
Example #22
0
    public void AddListener(GameEnums type, Callback cb, string tag)
    {
        tag = tag.ToLower();

        Listeners listeners = sandboxes[tag];

        if (listeners == null)
        {
            listeners = sandboxes[tag] = new Listeners();
        }

        CallbackList callbacks = listeners[type];

        if (callbacks == null)
        {
            callbacks = listeners[type] = new CallbackList();
        }

        callbacks.Add(cb);
    }
Example #23
0
    // PRIVATE METHODS

    void RegisterImpl(string channel, IListener listener)
    {
        if (string.IsNullOrEmpty(channel) == true)
        {
            return;
        }

        if (m_Channels.ContainsKey(channel) == false)
        {
            m_Channels[channel] = new Listeners();
        }

        Listeners listeners = m_Channels[channel];

        if (listeners.Contains(listener) == true)
        {
            return;
        }

        listeners.Add(listener);
    }
        public void ListenLoop()
        {
            while (Running)
            {
                BlockingCollection <ITunnel> .TakeFromAny(Listeners.Select(l => l.Queue).ToArray(), out ITunnel tunnel);

                Log.Info("Accepted tunnel {0}", tunnel.ToString());

                ClientInstance instance = new ClientInstance(tunnel, CertificateAuthority, Certificate, Signature);
                instance.Tun = Tun;

                if (!instance.Init())
                {
                    continue;
                }

                instance.Link.BufferedWrite = false;

                UnenumeratedClients.Add(instance);
            }
        }
        static void Main(string[] args)
        {
            Listeners.Add(new System.Diagnostics.TextWriterTraceListener(Console.Out));
            var packageDir = new DirectoryInfo(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Packages"));

            if (packageDir.Exists)
            {
                try
                {
                    ProcessEdge(packageDir);
                }
                catch (Exception e)
                {
                    WriteLine(e.Message);
                }
            }
            else
            {
                WriteLine("Unable to locate package directory. Are you running a modern version of Windows?");
            }
        }
Example #26
0
        public virtual void Stop()
        {
            IsStopped = true;

            for (var i = 0; i < Listeners.Count; i++)
            {
                var listener = Listeners[i];

                listener.Stop();
            }

            Listeners.Clear();

            // Clean the attached server resources
            if (m_ServerResources != null)
            {
                Parallel.ForEach(m_ServerResources, (r) => r.Rollback());
            }

            IsRunning = false;
        }
Example #27
0
        private void ProcessPendingSections(out bool workDone)
        {
            workDone = false;
            while (_pendingSections.TryDequeue(out var pair))
            {
                // We may still have pending sections from a log file we've just removed as listener.
                // If that's the case, then throw away that section and go look for the next...
                if (!Equals(pair.Key, _finalLogSource))
                {
                    continue;
                }

                var modification = pair.Value;
                if (modification.IsReset())
                {
                    Listeners.Reset();
                    _count = 0;
                    _maxCharactersInLine = 0;
                }
                else if (modification.IsRemoved(out var removedSection))
                {
                    Listeners.Remove((int)removedSection.Index, removedSection.Count);
                    _count = (int)removedSection.Index;
                    // TODO: What about max width?
                }
                else if (modification.IsAppended(out var appendedSection))
                {
                    Listeners.OnRead(appendedSection.LastIndex);
                    _count = (int)(appendedSection.Index + appendedSection.Count);
                    UpdateMaxWidth(appendedSection, pair.Key);
                }

                workDone = true;
            }

            if (!workDone)
            {
                Listeners.OnRead(_count);
            }
        }
Example #28
0
        public void OnActivate()
        {
            Console = Get <TestConsole>().FirstOrDefault();
            Console?.AddEntry(Category.Info).WriteLine("Hello World!");

            Listeners.Add <Button>(ButtonEvents.Action, (b) => ClearConsole(), "Clear");

            Listeners.Add <Button>(ButtonEvents.Action, (b) => Host(), "Host");
            Listeners.Add <Button>(ButtonEvents.Action, (b) => Join(), "Join");
            Listeners.Add <Button>(ButtonEvents.Action, (b) => Quit(), "Quit");

            Listeners.Add <Button>(ButtonEvents.Action, (b) => Send(), "Send");

            _client.DataRecieved += _client_DataRecieved;
            _server.DataRecieved += _server_DataRecieved;

            _client.Joined     += _client_Joined;
            _client.Disconnect += _client_Disconnected;

            _server.Joined     += _server_Joined;
            _server.Disconnect += _server_Disconnected;
        }
Example #29
0
        public async Task Shutdown()
        {
            Emit("ShuttingDown", true);
            _isReady = false;

            // Cleanup script file watcher
            if (_watchSubscription != null)
            {
                _watchSubscription.Dispose();
            }
            _scriptRunner.Cleanup();
            Listeners.Clear();
            foreach (var adapter in _adapters.Values)
            {
                await adapter.Close();
            }
            if (_brain != null)
            {
                await _brain.Close();
            }
            Emit("ShutdownComplete", true);
        }
Example #30
0
        public string Serialize()
        {
            var rawLevelData = new RawLevelData();

            rawLevelData.size = new RawLevelData.Size
            {
                width  = Width,
                height = Height
            };

            rawLevelData.spawnInfo = new RawLevelData.RawSpawnInfo
            {
                position = new RawLevelData.Coords {
                    x = SpawnPosition.X, y = SpawnPosition.Y
                },
                type = SpawnBig ? "big" : "small"
            };

            rawLevelData.areas     = Areas.Select(area => Area.ToRaw(area)).ToList();
            rawLevelData.listeners = Listeners.Select(listener => Listener.ToRaw(listener)).ToList();
            rawLevelData.entities  = Entities.Select(entity => Entity.ToRaw(entity)).ToList();
            rawLevelData.blocks    = new List <IList <int> >();

            for (int i = 0; i < Height; i++)
            {
                var blockList = new List <int>();
                for (int j = 0; j < Width; j++)
                {
                    blockList.Add(Blocks[i * Width + j].BlockId);
                }
                rawLevelData.blocks.Add(blockList);
            }

            return(JsonConvert.SerializeObject(rawLevelData, Formatting.None, new JsonSerializerSettings
            {
                NullValueHandling = NullValueHandling.Ignore
            }));
        }
Example #31
0
        public void Stop()
        {
            if (IsStopped)
            {
                return;
            }
            lock (SyncRoot)
            {
                if (IsStopped)
                {
                    return;
                }

                IsStopped = true;

                for (var i = 0; i < Listeners.Count; i++)
                {
                    var listener = Listeners[i];

                    listener.Stop();
                }

                Listeners.Clear();

                SendingQueuePool = null;

                IsRunning = false;

                foreach (var item in m_SocketPool)
                {
                    item.SocketEventArgs.Dispose();
                }

                m_SocketPool           = null;
                m_ReceiveBufferManager = null;
                IsRunning = false;
            }
        }
 /// <summary>
 /// Load Natives From URL
 /// </summary>
 /// <param name="f">this form </param>
 /// <param name="onNative">public class Form1 : Form, GTAVDB.Listeners.OnNativeListener</param>
 /// <param name="link">Provide Link to load natives</param>
 public static void LoadNatives(Form f, Listeners.OnNativeListener onNative,string link)
 {
     natives.Clear();
     Thread t = new Thread(new ThreadStart(() =>
     {
         try
         {
             isFinished = false;
             String backup = f.Text;
             f.Invoke(new Action(() =>
             {
                 f.Text = "Loading Natives...";
             }));
             WebClient wc = new WebClient();
             string file = wc.DownloadString(link);
             string[] s_native = file.Split(new string[] { "," }, StringSplitOptions.None);
             foreach (string native in s_native)
             {
                 string[] hash = native.Split(new string[] { "=" }, StringSplitOptions.None);
                 if (hash.Length > 1)
                 {
                     string name = hash[0].Trim();
                     UInt32 offset = Convert.ToUInt32(hash[1].Trim(), 16);
                     if (!natives.ContainsKey(name))
                     {
                         natives.Add(name, offset);
                     }
                 }
             }
             f.Invoke(new Action(() =>
             {
                 onNative.OnNativesLoaded("Loaded");
                 f.Text = "Natives Loaded";
                 new Thread(new ThreadStart(() =>
                 {
                     Thread.Sleep(3000);
                     f.Invoke(new Action(() =>
                     {
                         f.Text = backup;
                         isFinished = true;
                     }));
                 })).Start();
             }));
         }catch(Exception ex){
             f.Invoke(new Action(() =>
             {
                 onNative.OnNativesFailed("Failed To Load Natives");
             }));
         }
     }));
     t.Start();
 }
        public static void LoadRPC(Form f, Listeners.OnNativeListener onNative)
        {
            using (OpenFileDialog ofd = new OpenFileDialog())
            {
                ofd.Title = "Load RPC BASE From File";
                DialogResult dr = ofd.ShowDialog();
                if (dr == DialogResult.OK)
                {
                    rpc.Clear();
                    Thread t = new Thread(new ThreadStart(() =>
                    {
                        try
                        {
                            isFinished = false;
                            String backup = f.Text;
                            f.Invoke(new Action(() =>
                            {
                                f.Text = "Loading RPC BASE...";
                            }));
                            string file = System.IO.File.ReadAllText(ofd.FileName);
                            string[] s_native = file.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
                            foreach (string native in s_native)
                            {
                                string[] hash = native.Split(new string[] { "=" }, StringSplitOptions.None);
                                if (hash.Length > 1)
                                {
                                    string name = hash[0].Trim();
                                    UInt32 offset = Convert.ToUInt32(hash[1].Trim(), 16);
                                    if (!rpc.ContainsKey(name))
                                    {
                                        rpc.Add(name, offset);
                                    }
                                }
                            }

                            isFinished = true;
                            f.Invoke(new Action(() =>
                            {

                                onNative.OnNativesLoaded("RPC BASE Loaded!");
                                f.Text = "RPC BASE Loaded";
                                new Thread(new ThreadStart(() =>
                                {
                                    Thread.Sleep(3000);
                                    f.Invoke(new Action(() =>
                                    {
                                        f.Text = backup;
                                    }));
                                })).Start();
                            }));
                        }
                        catch (Exception ex)
                        {

                            f.Invoke(new Action(() =>
                            {
                                onNative.OnNativesFailed("Failed To Load RPC BASE");
                            }));
                        }
                    }));
                    t.Start();

                }
                else
                {

                }
            }
        }