<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>painttemple5</title>
    <link>//painttemple5.bravejournal.net/</link>
    <description></description>
    <pubDate>Mon, 04 May 2026 04:25:39 +0000</pubDate>
    <item>
      <title>15 Top Twitter Accounts To Find Out More About Automatic Vacuum And Mop Robot</title>
      <link>//painttemple5.bravejournal.net/15-top-twitter-accounts-to-find-out-more-about-automatic-vacuum-and-mop-robot</link>
      <description>&lt;![CDATA[Automatic Vacuum and Mop Robots Save Time and Effort Vacuuming can leave behind a large amount of debris, specifically fine dust. This can be removed by mopping. Fortunately, many robot vacuums also double as mop. Its pricier stablemates boast impressive features, such as self-emptying dustbins, and mopping pads which are automatically cleaned and dried. This model can compete with its more expensive counterparts. Multi-room smart mapping The majority of mop and vacuum robots have a mapping feature which allows the user to create an interactive map of their home. The map allows the robot to avoid obstacles and clean floors efficiently. The map feature is especially useful in large houses where furniture could be a challenge for robots to navigate. Most vacuum and mop robots can be paired with an app that allows you to save maps, set cleaning schedules or select cleaning options. The app also gives you real-time data on the performance of the device including the number of floors it has cleaned. It will even let you know when the battery is running low. To start the mapping session again begin, you need to bring the robot to the area that needs to map. It is recommended to prepare the space by clearing away any clutter, moving out loose objects or furniture and securing cables. If you can, it&#39;s also a good idea to make the most of the room arrangement. Some robots have a dock that automatically empties itself. This can be used to store dirty or wet mopping pads until they need to be replaced. Some models come with an additional water tank and require the user to refill and replace their cleaning pads regularly. The best robots that combine mopping and vacuuming can wash and dry their cleaning pads automatically, however they&#39;re typically expensive.  The mapping capabilities of robot mops can be improved by incorporating virtual walls or no-go zones. The no-go zone can stop the robot entering specific areas of your house and can be altered to meet your requirements. The virtual wall can be used to shield fragile objects in rooms from harm. You can edit the Smart Map at any moment by selecting the room labels, room dividers or zones. You can also change the orientation of the map, or rename rooms. Utilizing the Smart Map feature, you can alter your robot cleaner&#39;s behavior by setting different cleaning options for each room in the home. You can also define the direction of cleaning that the robot vacuum and mop follow. Real-time cleaning data The majority of vacuum and mop robots have reusable cleaning pads which can be cleaned and dried after each mopping cycle. Some, such as the Noesis Florio, also handle two jobs -- vacuuming and mopping to get rid of dirt and stains that are difficult to remove. This is a great feature for homes with multiple floors and saves time by handling duo tasks at the same time. Mapping technology helps your robot cleaner avoid hitting obstacles and optimizes paths in real-time. It could take several mapping runs to map your entire home dependent on how large the area is as well as how complex the surrounding is. Mapping can also be updated continuously to avoid obstacles that arise and keep track of changes over time. Smart navigation features help your vacuum and mop avoid obstacles such as stairs and other obstacles that could cause it to get stuck. They also can detect and avoid objects like wires, shoes, pet waste, and toys. Certain models employ object recognition technology that recognizes the wide variety of household objects. It learns from each encounter and improves navigation over time. Find a robot that comes with a mobile app. Many robots allow you to remotely monitor and control your device. You can also set schedules and change cleaning modes and accessories. Some of them can be operated by voice with your preferred smart assistant. Smart vacuums and mop robots are the perfect way to reduce chores in the house, and give you more time to do other things. It can automate the vacuuming and mopping of your entire house or a particular room while keeping an eye on your preferred cleaning schedules. Using a mobile app you can alter the cleaning programs to suit your unique needs, including options for different floor types and different levels of dirtiness. Some robots that vacuum and mop provide precise information about how each cleaning session has progressed. This includes when the machine began and ended its work as well as the area of the floor covered, as well as how long the entire process took. This information is especially useful for people with a large amount of furniture or other obstacles in their homes. Automatic replacement of accessories Many robot vacuum and mop combos have pads that must be removed, cleaned (if the manufacturer allows it) and dried between uses. These pads can harbor bacteria and also remain moist for a long time, resulting in unpleasant odors. It&#39;s important that a robotic mop with vacuum capability always has a clean pad to avoid these issues. Many of the top vac-mop robots have automatic replacement of accessories which means they&#39;ll notify you when it&#39;s time to wash or replace the dirty one. These will save you time and prevent you from running low on clean new pads at the worst time. In our tests, a robot that is able to automatically remove its own cleaning pad from its base and clean it could earn two points in our scoring system in the event that it returns its dirty pad back to its dock after it has been cleaned. This is the only method for a vacuum and mop robot to earn 2 points for this scoring component. We believe this is an essential feature for those who plan to make use of their robot frequently. We also examine how well a robot performs when it&#39;s cleaning carpet. Its ability to raise its mop pads up enough to keep the carpet wet is crucial particularly in homes with thick, plush carpets. We test on a specially-designed flooring that is able to handle different kinds of dirt and levels. The most effective mop pads are those that can reach all the nooks without overworking the motor. The base station of a robot vacuum and mop should be able to dispensate dirty water, fill its water tank automatically using cleaner and clean its brushes. Some of the most advanced robots have bases that can do all of this, as well as delivering detergent and automatically changing mop pads in mid-clean. Some even contain sensors that detect stain and spills and differentiate between floors, so they can avoid mopping your Persian rug. The best vacuum-and-mop robots with base stations that can be controlled via the app and include various other smart features, including timer functions, multiple cleaning programs, and a camera. They can be programmed to clean a zone or room, or by spot. Some are also programmable by voice control. Easy cleaning Mopping is the best method to get rid of tough stains from tile, vinyl and other hardwood surfaces. Many robots that are vacuums are also able to mop, which saves time and effort. All robot mops perform this by transferring a pad containing cleaning solution across the floor, however their top models also come with a rotating mop and apply constant pressure to scrub more thoroughly. They also adjust the level of water depending on the type of floor and feature a mode that uses more pressure for tile floors as opposed to wood floors. ECOVACS Mopbots come with a sensor that detects the size of the stain. The level of water is adjusted accordingly. Other useful features to look for include mapping capabilities that direct the robot through your home, and obstacle avoidance. These technologies use technology similar to that used by self-driving cars to map out rooms and identify and avoid furniture, cords and pet waste. You can also control your robot remotely and create virtual boundaries for areas that you don&#39;t want it entering like bedrooms where kids are asleep, or work spaces when you work from home. Finally, consider the the ease of setting up and maintenance when choosing a robot. Look for a robot that automatically emptys its dust bin into a bigger and more durable bag that is emptied every 30 days. Also look for a machine that cleans and disposes of its mops by itself. best robot vacuum cleaner to consider is the life of the battery. Most robot vacuums and mop combinations are powered by rechargeable batteries that can die during the course of an operation. A good model will automatically return to its docking station, charging and then resume the same place it left off when the power is exhausted. Some docks can be multi-functional and can empty the dust bins, refill the water tanks, or even clean the mop pads. This will save you the effort of doing it manually. In addition, select one that is able to change between modes without your involvement which is perfect when you have guests over or you need to clean your floors quickly.]]&gt;</description>
      <content:encoded><![CDATA[<p>Automatic Vacuum and Mop Robots Save Time and Effort Vacuuming can leave behind a large amount of debris, specifically fine dust. This can be removed by mopping. Fortunately, many robot vacuums also double as mop. Its pricier stablemates boast impressive features, such as self-emptying dustbins, and mopping pads which are automatically cleaned and dried. This model can compete with its more expensive counterparts. Multi-room smart mapping The majority of mop and vacuum robots have a mapping feature which allows the user to create an interactive map of their home. The map allows the robot to avoid obstacles and clean floors efficiently. The map feature is especially useful in large houses where furniture could be a challenge for robots to navigate. Most vacuum and mop robots can be paired with an app that allows you to save maps, set cleaning schedules or select cleaning options. The app also gives you real-time data on the performance of the device including the number of floors it has cleaned. It will even let you know when the battery is running low. To start the mapping session again begin, you need to bring the robot to the area that needs to map. It is recommended to prepare the space by clearing away any clutter, moving out loose objects or furniture and securing cables. If you can, it&#39;s also a good idea to make the most of the room arrangement. Some robots have a dock that automatically empties itself. This can be used to store dirty or wet mopping pads until they need to be replaced. Some models come with an additional water tank and require the user to refill and replace their cleaning pads regularly. The best robots that combine mopping and vacuuming can wash and dry their cleaning pads automatically, however they&#39;re typically expensive. <img src="https://cdn.freshstore.cloud/offer/images/15131/693/c/ecovacs-deebot-n10-robot-vacuum-cleaner-with-mop-4300pa-auto-empty-station-300-min-4300-sqft-truemapping-2-0-dtof-laser-navigation-carpet-detection-precise-customized-cleaning-no-go-zones-693-small.jpg" alt=""> The mapping capabilities of robot mops can be improved by incorporating virtual walls or no-go zones. The no-go zone can stop the robot entering specific areas of your house and can be altered to meet your requirements. The virtual wall can be used to shield fragile objects in rooms from harm. You can edit the Smart Map at any moment by selecting the room labels, room dividers or zones. You can also change the orientation of the map, or rename rooms. Utilizing the Smart Map feature, you can alter your robot cleaner&#39;s behavior by setting different cleaning options for each room in the home. You can also define the direction of cleaning that the robot vacuum and mop follow. Real-time cleaning data The majority of vacuum and mop robots have reusable cleaning pads which can be cleaned and dried after each mopping cycle. Some, such as the Noesis Florio, also handle two jobs — vacuuming and mopping to get rid of dirt and stains that are difficult to remove. This is a great feature for homes with multiple floors and saves time by handling duo tasks at the same time. Mapping technology helps your robot cleaner avoid hitting obstacles and optimizes paths in real-time. It could take several mapping runs to map your entire home dependent on how large the area is as well as how complex the surrounding is. Mapping can also be updated continuously to avoid obstacles that arise and keep track of changes over time. Smart navigation features help your vacuum and mop avoid obstacles such as stairs and other obstacles that could cause it to get stuck. They also can detect and avoid objects like wires, shoes, pet waste, and toys. Certain models employ object recognition technology that recognizes the wide variety of household objects. It learns from each encounter and improves navigation over time. Find a robot that comes with a mobile app. Many robots allow you to remotely monitor and control your device. You can also set schedules and change cleaning modes and accessories. Some of them can be operated by voice with your preferred smart assistant. Smart vacuums and mop robots are the perfect way to reduce chores in the house, and give you more time to do other things. It can automate the vacuuming and mopping of your entire house or a particular room while keeping an eye on your preferred cleaning schedules. Using a mobile app you can alter the cleaning programs to suit your unique needs, including options for different floor types and different levels of dirtiness. Some robots that vacuum and mop provide precise information about how each cleaning session has progressed. This includes when the machine began and ended its work as well as the area of the floor covered, as well as how long the entire process took. This information is especially useful for people with a large amount of furniture or other obstacles in their homes. Automatic replacement of accessories Many robot vacuum and mop combos have pads that must be removed, cleaned (if the manufacturer allows it) and dried between uses. These pads can harbor bacteria and also remain moist for a long time, resulting in unpleasant odors. It&#39;s important that a robotic mop with vacuum capability always has a clean pad to avoid these issues. Many of the top vac-mop robots have automatic replacement of accessories which means they&#39;ll notify you when it&#39;s time to wash or replace the dirty one. These will save you time and prevent you from running low on clean new pads at the worst time. In our tests, a robot that is able to automatically remove its own cleaning pad from its base and clean it could earn two points in our scoring system in the event that it returns its dirty pad back to its dock after it has been cleaned. This is the only method for a vacuum and mop robot to earn 2 points for this scoring component. We believe this is an essential feature for those who plan to make use of their robot frequently. We also examine how well a robot performs when it&#39;s cleaning carpet. Its ability to raise its mop pads up enough to keep the carpet wet is crucial particularly in homes with thick, plush carpets. We test on a specially-designed flooring that is able to handle different kinds of dirt and levels. The most effective mop pads are those that can reach all the nooks without overworking the motor. The base station of a robot vacuum and mop should be able to dispensate dirty water, fill its water tank automatically using cleaner and clean its brushes. Some of the most advanced robots have bases that can do all of this, as well as delivering detergent and automatically changing mop pads in mid-clean. Some even contain sensors that detect stain and spills and differentiate between floors, so they can avoid mopping your Persian rug. The best vacuum-and-mop robots with base stations that can be controlled via the app and include various other smart features, including timer functions, multiple cleaning programs, and a camera. They can be programmed to clean a zone or room, or by spot. Some are also programmable by voice control. Easy cleaning Mopping is the best method to get rid of tough stains from tile, vinyl and other hardwood surfaces. Many robots that are vacuums are also able to mop, which saves time and effort. All robot mops perform this by transferring a pad containing cleaning solution across the floor, however their top models also come with a rotating mop and apply constant pressure to scrub more thoroughly. They also adjust the level of water depending on the type of floor and feature a mode that uses more pressure for tile floors as opposed to wood floors. ECOVACS Mopbots come with a sensor that detects the size of the stain. The level of water is adjusted accordingly. Other useful features to look for include mapping capabilities that direct the robot through your home, and obstacle avoidance. These technologies use technology similar to that used by self-driving cars to map out rooms and identify and avoid furniture, cords and pet waste. You can also control your robot remotely and create virtual boundaries for areas that you don&#39;t want it entering like bedrooms where kids are asleep, or work spaces when you work from home. Finally, consider the the ease of setting up and maintenance when choosing a robot. Look for a robot that automatically emptys its dust bin into a bigger and more durable bag that is emptied every 30 days. Also look for a machine that cleans and disposes of its mops by itself. <a href="https://wifidb.science/wiki/Why_You_Should_Concentrate_On_Improving_Robot_Vacuum">best robot vacuum cleaner</a> to consider is the life of the battery. Most robot vacuums and mop combinations are powered by rechargeable batteries that can die during the course of an operation. A good model will automatically return to its docking station, charging and then resume the same place it left off when the power is exhausted. Some docks can be multi-functional and can empty the dust bins, refill the water tanks, or even clean the mop pads. This will save you the effort of doing it manually. In addition, select one that is able to change between modes without your involvement which is perfect when you have guests over or you need to clean your floors quickly.</p>
]]></content:encoded>
      <guid>//painttemple5.bravejournal.net/15-top-twitter-accounts-to-find-out-more-about-automatic-vacuum-and-mop-robot</guid>
      <pubDate>Thu, 19 Dec 2024 14:56:15 +0000</pubDate>
    </item>
    <item>
      <title>The Steve Jobs Of Robot Vacuum With Mop Meet With The Steve Jobs Of The Robot Vacuum With Mop Industry</title>
      <link>//painttemple5.bravejournal.net/the-steve-jobs-of-robot-vacuum-with-mop-meet-with-the-steve-jobs-of-the-robot</link>
      <description>&lt;![CDATA[Can a Robot Vacuum Come With a Mop? The majority of robot vacuums we tested can mop, and the best 2-in-1 models can take post-mopping maintenance off your list by automatically washing their own mop pads, which are reused in their docks. However, avoid using any cleaner other than the one recommended by the manufacturer. This could cause damage to the robot and void its warranty. Self-Emptying Bins Most robot vacuums that come with a mop will also come with self-emptying bins, which makes cleaning more hands-off. The amount of time you&#39;ll spend emptying the dustbin or base station will depend on how often and how filthy your house is, but these models do take a lot of the manual work out of the process, and are ideal for busy households. The top robot vacuums that can mop come with a tank with clean and dirty water, along with a compartment for the floor-cleaning solution of the manufacturer to be mixed automatically and dispersed. After a cleaning session is complete, the onboard bin will be filled, and the dirt and debris will be taken back to the base station to be sealed into a larger, more durable dust bag. The base stations can also be used to refill and wash the robot mop. These &#34;hands free&#34; robots such as the S8 MaxV Ultra by Roborock are the newest class of robots. They vacuum clean, muck, mop, and even refill their water tanks, wash and dry their mop pads. They make use of mapping and obstacle avoidance to get around the house, as well as smart functions like room-specific and digital keep-away scheduling. However, although these new types of robots are extremely efficient at cleaning bare floors, they&#39;re not the best choice for mopping carpeted areas or getting into tight spaces like between chairs legs or under furniture. That&#39;s why we also suggest some robot mops which can vacuum and mop, including the Roborock S7 and S8 and the Samsung Powerbot VR90. The eufy X10 Pro Omni comes with an onboard bin for dirt and debris that can be cleaned manually It also has a self-emptying docking station that&#39;s capable of emptying the storage bag in two or three cleaning cycles. The only drawback of this model is that you&#39;ll still need to empty the dust bin within the vacuum itself on occasion however we believe it&#39;s worth the extra investment for the convenience. Self-Cleaning  A robot vacuum that has an auto-emptying bin is an ideal choice for large families or homes who produce lots of dust and dirt. These models automatically drop used pads into a trash drawer to be disposed of and eliminate the need to manually empty the bin and reduces the often you&#39;ll have to do so. The option of connecting to your smartphone through an app is also nice as it allows you to create cleaning schedules and alter settings even if you&#39;re away from home. A good mop robot will have multiple modes for different floor types, including dry sweep and deep mopping. It also comes with an electric dock that is able to recharge between cleanings. If you&#39;re looking for a robotic mop that you can control by voice, make sure to check whether it is compatible with a smart voice assistant like Amazon Alexa or Google Assistant. Certain models come with additional features, like &#34;dirt sense&#34; that can detect the amount of dirt that has been left on the pad and causes it to remop and a system that adjusts its pressure to the type of surface (more for tile more pressure, less for hardwood) to avoid scratching floors. Some of the better robot mops are able to save an outline of your area and return to that area for a repeat clean. This feature is important if you have a multilevel home or certain areas you want the robot to concentrate on, for example, a kitchen floor and carpeted living room. Find a model that includes this technology in our recommended models along with other helpful features such as multi-room smart mapping that will help you create a precise plan for flooring in your home. Make sure you use only the cleaning products recommended for your robot. This will ensure that your robot is thoroughly and effectively cleaned without causing damage to your flooring or damaging your warranty. Cleaners that are compatible with your robot can be found in your local hardware stores, or even online. But, it&#39;s best to stick with what the manufacturer suggests. Self-Emptying Mops Robot vacuums that mop are a great way to get the freshly mopped and waxed appearance without hiring a professional. The majority of models that can mop also can be used for vacuuming and will be able to work on carpets and hard floors. However, they do have certain limitations, especially when you have a lot of dirt or extremely long carpets. They may also be less effective when used on certain flooring surfaces like laminate or Linoleum. A lot of the robots that are able to mop utilize disposable pads that are washed and dried by the base after every cleaning. They can last for as long as 50 minutes before they have to be recharged and replaced. The Noesis Florio, which uses disposable pads as opposed to rechargeable batteries, is a unique exception. It&#39;s nevertheless a great option because it is able to move so easily throughout the home. affordable robot vacuum can move around chair legs and over thresholds and even remembers the threshold&#39;s location after going over it a few times, so it knows to slow down. The X1 Omni is another option for robot vacuums that can mop, since it doesn&#39;t require an app to function. It works with Amazon Alexa and Google Assistant, which means you can operate it with voice commands. It&#39;s also cheaper than other robots, but it lacks some of the most advanced features. robot vacuum cleaners comes with a self-emptying bin that dumps the contents into a larger bin that needs to be emptied only every 30 days. It also automatically fills its water tank and disposes of the pads for cleaning when they&#39;re dirty, which makes it very low maintenance. Although the technology used in these vacuum-and-mop combos is improving however, they&#39;re still not good enough to replace a traditional vacuum and mop. That said, if you have a lot of your home that are carpeted, consider purchasing a robot mop and vacuum to keep those rooms clean and fresh. ZDNET provides a range of options that include budget-friendly models with additional features that do not reduce quality. Easy to Use Robots that have mopping capabilities are easy to operate. Most robots come with an application that lets you set schedules, adjust the power of vacuum and water and check the status of the cloths and pads. Some come with a built-in video camera that helps you identify pet hair or other debris that has stuck on your floor. Some models allow you to connect to a smart home assistant, such as Alexa or Google Assistant and others have voice activation. Some robots, such as the elegant RoboVac L20 Ultra, discard their dirty mopping pads automatically and drop them into an empty trash bin that is automatically emptied from a dock powered by batteries at the base station. This is a hands-free method of using the machine, but can leave your floors a bit less clean than if they were cleaned and replaced manually. Other models, like the eufy X10 Pro Omni, refill their mopping pad with separate reservoirs that are automatically empty from the dock. Many of the robots that combine mopping and vacuuming use smart navigation features that let them follow a pre-planned route and quickly cover large areas without missing any thing. This feature is especially useful in rooms with furniture as it helps them avoid getting caught up in tangled legs or other objects. App users will also receive notifications and status updates, for instance, when their bins are empty or need to be cleaned. The elegant RoboVac L20 Ultimate that we tested utilized its digital keep-out zone and lidar mapping system to navigate around couches, chairs, and other obstacles. In our tests, it also performed admirably in picking up pet hair and other debris in hard-to-reach corners and on stairs. If you want your robot to last and to function properly, it is important to clean it regularly and use only specific cleaning products made for it. Vinegar, for instance, is acidic and could harm the robot&#39;s internal systems. Robots that have vacuuming and mopping capabilities can be an excellent addition to your household particularly if you have pets. With a combination cleaner and cleaning the pads and cloths properly, you can extend the time-to-use of your equipment and enhance its performance. The purchase of one of these hybrids could cost more than a regular vacuum but the time and effort they can save can make them worth the cost.]]&gt;</description>
      <content:encoded><![CDATA[<p>Can a Robot Vacuum Come With a Mop? The majority of robot vacuums we tested can mop, and the best 2-in-1 models can take post-mopping maintenance off your list by automatically washing their own mop pads, which are reused in their docks. However, avoid using any cleaner other than the one recommended by the manufacturer. This could cause damage to the robot and void its warranty. Self-Emptying Bins Most robot vacuums that come with a mop will also come with self-emptying bins, which makes cleaning more hands-off. The amount of time you&#39;ll spend emptying the dustbin or base station will depend on how often and how filthy your house is, but these models do take a lot of the manual work out of the process, and are ideal for busy households. The top robot vacuums that can mop come with a tank with clean and dirty water, along with a compartment for the floor-cleaning solution of the manufacturer to be mixed automatically and dispersed. After a cleaning session is complete, the onboard bin will be filled, and the dirt and debris will be taken back to the base station to be sealed into a larger, more durable dust bag. The base stations can also be used to refill and wash the robot mop. These “hands free” robots such as the S8 MaxV Ultra by Roborock are the newest class of robots. They vacuum clean, muck, mop, and even refill their water tanks, wash and dry their mop pads. They make use of mapping and obstacle avoidance to get around the house, as well as smart functions like room-specific and digital keep-away scheduling. However, although these new types of robots are extremely efficient at cleaning bare floors, they&#39;re not the best choice for mopping carpeted areas or getting into tight spaces like between chairs legs or under furniture. That&#39;s why we also suggest some robot mops which can vacuum and mop, including the Roborock S7 and S8 and the Samsung Powerbot VR90. The eufy X10 Pro Omni comes with an onboard bin for dirt and debris that can be cleaned manually It also has a self-emptying docking station that&#39;s capable of emptying the storage bag in two or three cleaning cycles. The only drawback of this model is that you&#39;ll still need to empty the dust bin within the vacuum itself on occasion however we believe it&#39;s worth the extra investment for the convenience. Self-Cleaning <img src="https://cdn.freshstore.cloud/offer/images/15131/693/c/ecovacs-deebot-n10-robot-vacuum-cleaner-with-mop-4300pa-auto-empty-station-300-min-4300-sqft-truemapping-2-0-dtof-laser-navigation-carpet-detection-precise-customized-cleaning-no-go-zones-693-small.jpg" alt=""> A robot vacuum that has an auto-emptying bin is an ideal choice for large families or homes who produce lots of dust and dirt. These models automatically drop used pads into a trash drawer to be disposed of and eliminate the need to manually empty the bin and reduces the often you&#39;ll have to do so. The option of connecting to your smartphone through an app is also nice as it allows you to create cleaning schedules and alter settings even if you&#39;re away from home. A good mop robot will have multiple modes for different floor types, including dry sweep and deep mopping. It also comes with an electric dock that is able to recharge between cleanings. If you&#39;re looking for a robotic mop that you can control by voice, make sure to check whether it is compatible with a smart voice assistant like Amazon Alexa or Google Assistant. Certain models come with additional features, like “dirt sense” that can detect the amount of dirt that has been left on the pad and causes it to remop and a system that adjusts its pressure to the type of surface (more for tile more pressure, less for hardwood) to avoid scratching floors. Some of the better robot mops are able to save an outline of your area and return to that area for a repeat clean. This feature is important if you have a multilevel home or certain areas you want the robot to concentrate on, for example, a kitchen floor and carpeted living room. Find a model that includes this technology in our recommended models along with other helpful features such as multi-room smart mapping that will help you create a precise plan for flooring in your home. Make sure you use only the cleaning products recommended for your robot. This will ensure that your robot is thoroughly and effectively cleaned without causing damage to your flooring or damaging your warranty. Cleaners that are compatible with your robot can be found in your local hardware stores, or even online. But, it&#39;s best to stick with what the manufacturer suggests. Self-Emptying Mops Robot vacuums that mop are a great way to get the freshly mopped and waxed appearance without hiring a professional. The majority of models that can mop also can be used for vacuuming and will be able to work on carpets and hard floors. However, they do have certain limitations, especially when you have a lot of dirt or extremely long carpets. They may also be less effective when used on certain flooring surfaces like laminate or Linoleum. A lot of the robots that are able to mop utilize disposable pads that are washed and dried by the base after every cleaning. They can last for as long as 50 minutes before they have to be recharged and replaced. The Noesis Florio, which uses disposable pads as opposed to rechargeable batteries, is a unique exception. It&#39;s nevertheless a great option because it is able to move so easily throughout the home. <a href="https://posteezy.com/10-unquestionable-reasons-people-hate-automatic-vacuum-and-mop">affordable robot vacuum</a> can move around chair legs and over thresholds and even remembers the threshold&#39;s location after going over it a few times, so it knows to slow down. The X1 Omni is another option for robot vacuums that can mop, since it doesn&#39;t require an app to function. It works with Amazon Alexa and Google Assistant, which means you can operate it with voice commands. It&#39;s also cheaper than other robots, but it lacks some of the most advanced features. <a href="https://rentry.co/pww9qfna">robot vacuum cleaners</a> comes with a self-emptying bin that dumps the contents into a larger bin that needs to be emptied only every 30 days. It also automatically fills its water tank and disposes of the pads for cleaning when they&#39;re dirty, which makes it very low maintenance. Although the technology used in these vacuum-and-mop combos is improving however, they&#39;re still not good enough to replace a traditional vacuum and mop. That said, if you have a lot of your home that are carpeted, consider purchasing a robot mop and vacuum to keep those rooms clean and fresh. ZDNET provides a range of options that include budget-friendly models with additional features that do not reduce quality. Easy to Use Robots that have mopping capabilities are easy to operate. Most robots come with an application that lets you set schedules, adjust the power of vacuum and water and check the status of the cloths and pads. Some come with a built-in video camera that helps you identify pet hair or other debris that has stuck on your floor. Some models allow you to connect to a smart home assistant, such as Alexa or Google Assistant and others have voice activation. Some robots, such as the elegant RoboVac L20 Ultra, discard their dirty mopping pads automatically and drop them into an empty trash bin that is automatically emptied from a dock powered by batteries at the base station. This is a hands-free method of using the machine, but can leave your floors a bit less clean than if they were cleaned and replaced manually. Other models, like the eufy X10 Pro Omni, refill their mopping pad with separate reservoirs that are automatically empty from the dock. Many of the robots that combine mopping and vacuuming use smart navigation features that let them follow a pre-planned route and quickly cover large areas without missing any thing. This feature is especially useful in rooms with furniture as it helps them avoid getting caught up in tangled legs or other objects. App users will also receive notifications and status updates, for instance, when their bins are empty or need to be cleaned. The elegant RoboVac L20 Ultimate that we tested utilized its digital keep-out zone and lidar mapping system to navigate around couches, chairs, and other obstacles. In our tests, it also performed admirably in picking up pet hair and other debris in hard-to-reach corners and on stairs. If you want your robot to last and to function properly, it is important to clean it regularly and use only specific cleaning products made for it. Vinegar, for instance, is acidic and could harm the robot&#39;s internal systems. Robots that have vacuuming and mopping capabilities can be an excellent addition to your household particularly if you have pets. With a combination cleaner and cleaning the pads and cloths properly, you can extend the time-to-use of your equipment and enhance its performance. The purchase of one of these hybrids could cost more than a regular vacuum but the time and effort they can save can make them worth the cost.</p>
]]></content:encoded>
      <guid>//painttemple5.bravejournal.net/the-steve-jobs-of-robot-vacuum-with-mop-meet-with-the-steve-jobs-of-the-robot</guid>
      <pubDate>Thu, 19 Dec 2024 14:51:15 +0000</pubDate>
    </item>
    <item>
      <title>Be On The Lookout For: How Robot Vacuum Cleaner Is Taking Over And What You Can Do About It</title>
      <link>//painttemple5.bravejournal.net/be-on-the-lookout-for-how-robot-vacuum-cleaner-is-taking-over-and-what-you-can</link>
      <description>&lt;![CDATA[!DOCTYPE HTML&#xA;html&#xA;&#x9;head&#xA;&#xA;&#x9;&#x9;titleNew Post &amp;mdash; bravejournal.net/title&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;/css/write.css&#34; /&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34; /&#xA;&#xA;&#x9;&#x9;meta name=&#34;google&#34; value=&#34;notranslate&#34;&#xA;&#x9;/head&#xA;&#x9;body id=&#34;pad&#34; class=&#34;light&#34;&#xA;&#xA;&#x9;&#x9;div id=&#34;overlay&#34;/div&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;textarea id=&#34;writer&#34; placeholder=&#34;Write...&#34; class=&#34;norm&#34; autofocus/textarea&#xA;&#xA;&#x9;&#x9;div class=&#34;alert success hidden&#34; id=&#34;edited-elsewhere&#34;This post has been updated elsewhere since you last published! a href=&#34;#&#34; id=&#34;erase-edit&#34;Delete draft and reload/a./div&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;header id=&#34;tools&#34;&#xA;&#x9;&#x9;&#x9;div id=&#34;clip&#34;&#xA;&#x9;&#x9;&#x9;&#x9;h1a href=&#34;/me/c/&#34; title=&#34;View blogs&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icblogsdark@2x.png&#34; //a/h1&#xA;&#x9;&#x9;&#x9;&#x9;nav id=&#34;target&#34; ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;has-submenu&#34;a href=&#34;#&#34; id=&#34;publish-to&#34; onclick=&#34;return false&#34;span id=&#34;target-name&#34;Draft/span img class=&#34;ic-18dp&#34; src=&#34;/img/icdownarrowdark@2x.png&#34; //a&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;menu-heading&#34;Publish to.../li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;target selected&#34; id=&#34;blog-painttemple5&#34;a href=&#34;#painttemple5&#34;i class=&#34;material-icons md-18&#34;public/i painttemple5/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;target&#34; id=&#34;blog-anonymous&#34;a href=&#34;#anonymous&#34;i class=&#34;material-icons md-18&#34;description/i emDraft/em/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li id=&#34;user-separator&#34; class=&#34;separator&#34;hr //li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia href=&#34;/me/c/&#34;i class=&#34;material-icons md-18&#34;librarybooks/i View Blogs/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia href=&#34;/me/posts/&#34;i class=&#34;material-icons md-18&#34;viewlist/i View Drafts/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia href=&#34;/me/logout&#34;i class=&#34;material-icons md-18&#34;powersettingsnew/i  Log out/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;/ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;/li&#xA;&#x9;&#x9;&#x9;&#x9;/ul/nav&#xA;&#x9;&#x9;&#x9;&#x9;nav id=&#34;font-picker&#34; class=&#34;if-room room-3 hidden&#34; style=&#34;margin-left:-1em&#34;ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;has-submenu&#34;a href=&#34;#&#34; id=&#34;&#34; onclick=&#34;return false&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icfontdark@2x.png&#34; / img class=&#34;ic-18dp&#34; src=&#34;/img/icdownarrowdark@2x.png&#34; //a&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;ul style=&#34;text-align: center&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;menu-heading&#34;Font/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;selected&#34;a class=&#34;font norm&#34; href=&#34;#norm&#34;Serif/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia class=&#34;font sans&#34; href=&#34;#sans&#34;Sans-serif/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia class=&#34;font wrap&#34; href=&#34;#wrap&#34;Monospace/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;/ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;/li&#xA;&#x9;&#x9;&#x9;&#x9;/ul/nav&#xA;&#x9;&#x9;&#x9;&#x9;span id=&#34;wc&#34; class=&#34;hidden if-room room-4&#34;0 words/span&#xA;&#x9;&#x9;&#x9;/div&#xA;&#x9;&#x9;&#x9;noscript style=&#34;margin-left: 2em;&#34;strongNOTE/strong: for now, you&#39;ll need Javascript enabled to post./noscript&#xA;&#x9;&#x9;&#x9;div id=&#34;belt&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;div class=&#34;tool hidden if-room room-2&#34;a href=&#34;#theme&#34; title=&#34;Toggle theme&#34; id=&#34;toggle-theme&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icbrightnessdark@2x.png&#34; //a/div&#xA;&#x9;&#x9;&#x9;&#x9;div class=&#34;tool if-room room-1&#34;a href=&#34;/me/posts/&#34; title=&#34;View posts&#34; id=&#34;view-posts&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/iclistdark@2x.png&#34; //a/div&#xA;&#x9;&#x9;&#x9;&#x9;div class=&#34;tool&#34;a href=&#34;#publish&#34; title=&#34;Publish&#34; id=&#34;publish&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icsenddark@2x.png&#34; //a/div&#xA;&#x9;&#x9;&#x9;/div&#xA;&#x9;&#x9;/header&#xA;&#xA;&#x9;&#x9;script src=&#34;/js/h.js&#34;/script&#xA;&#x9;&#x9;script type=&#34;text/javascript&#34; src=&#34;/js/menu.js&#34;/script&#xA;&#x9;&#x9;script&#xA;&#x9;&#x9;function toggleTheme() {&#xA;&#x9;&#x9;&#x9;if (document.body.classList.contains(&#39;light&#39;)) {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;dark&#39;);&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;light&#39;);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;H.set(&#39;padTheme&#39;, newTheme);&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;function setTheme(newTheme) {&#xA;&#x9;&#x9;&#x9;document.body.classList.remove(&#39;light&#39;);&#xA;&#x9;&#x9;&#x9;document.body.classList.remove(&#39;dark&#39;);&#xA;&#x9;&#x9;&#x9;document.body.classList.add(newTheme);&#xA;&#x9;&#x9;&#x9;var btns = Array.prototype.slice.call(document.getElementById(&#39;tools&#39;).querySelectorAll(&#39;a img&#39;));&#xA;&#x9;&#x9;&#x9;if (newTheme == &#39;light&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;if (H.get(&#39;padTheme&#39;, &#39;auto&#39;) == &#39;dark&#39;){&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;for (var i=0; i&lt;btns.length; i++) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;btns[i].src = btns[i].src.replace(&#39;@2x.png&#39;, &#39;dark@2x.png&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;for (var i=0; i&lt;btns.length; i++) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;btns[i].src = btns[i].src.replace(&#39;dark@2x.png&#39;, &#39;@2x.png&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;H.set(&#39;padTheme&#39;, newTheme);&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;if (H.get(&#39;padTheme&#39;, &#39;auto&#39;) == &#39;light&#39;) {&#xA;&#x9;&#x9;&#x9;setTheme(&#39;light&#39;);&#xA;&#x9;&#x9;} else if (H.get(&#39;padTheme&#39;, &#39;auto&#39;) == &#39;dark&#39;) {&#xA;&#x9;&#x9;&#x9;setTheme(&#39;dark&#39;);&#xA;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;const isDarkMode = window.matchMedia(&#34;(prefers-color-scheme: dark)&#34;).matches&#xA;&#x9;&#x9;&#x9;if (isDarkMode) {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;dark&#39;);&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;light&#39;);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;var $writer = H.getEl(&#39;writer&#39;);&#xA;&#x9;&#x9;var $btnPublish = H.getEl(&#39;publish&#39;);&#xA;&#x9;&#x9;var $btnEraseEdit = H.getEl(&#39;edited-elsewhere&#39;);&#xA;&#x9;&#x9;var $wc = H.getEl(&#34;wc&#34;);&#xA;&#x9;&#x9;var updateWordCount = function() {&#xA;&#x9;&#x9;&#x9;var words = 0;&#xA;&#x9;&#x9;&#x9;var val = $writer.el.value.trim();&#xA;&#x9;&#x9;&#x9;if (val != &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;words = $writer.el.value.trim().replace(/\s+/gi, &#39; &#39;).split(&#39; &#39;).length;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;$wc.el.innerText = words + &#34; word&#34; + (words != 1 ? &#34;s&#34; : &#34;&#34;);&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var setButtonStates = function() {&#xA;&#x9;&#x9;&#x9;if (!canPublish) {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.className = &#39;disabled&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;return;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;if ($writer.el.value.length === 0 || (draftDoc != &#39;lastDoc&#39; &amp;&amp; $writer.el.value == origDoc)) {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.className = &#39;disabled&#39;;&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.className = &#39;&#39;;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var draftDoc = &#39;lastDoc&#39;;&#xA;&#x9;&#x9;var updatedStr = &#39;&#39;;&#xA;&#x9;&#x9;var updated = null;&#xA;&#x9;&#x9;if (updatedStr != &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;updated = new Date(updatedStr);&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var ok = H.load($writer, draftDoc, true, updated);&#xA;&#x9;&#x9;if (!ok) {&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;$btnEraseEdit.el.classList.remove(&#39;hidden&#39;);&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var defaultTimeSet = false;&#xA;&#x9;&#x9;updateWordCount();&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;var typingTimer;&#xA;&#x9;&#x9;var doneTypingInterval = 200;&#xA;&#xA;&#x9;&#x9;var posts;&#xA;&#x9;&#x9;var canPublish = true;&#xA;&#x9;&#x9;var publishing = false;&#xA;&#x9;&#x9;var justPublished = false;&#xA;&#x9;&#x9;var silenced =  false ;&#xA;&#x9;&#x9;var publish = function(content, font) {&#xA;&#x9;&#x9;&#x9;if (silenced === true) {&#xA;&#x9;&#x9;&#x9;&#x9;alert(&#34;Your account is silenced, so you can&#39;t publish or update posts.&#34;);&#xA;&#x9;&#x9;&#x9;&#x9;return;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;$btnPublish.el.children[0].textContent = &#39;more_horiz&#39;;&#xA;&#x9;&#x9;&#x9;publishing = true;&#xA;&#x9;&#x9;&#x9;var xpostTarg = H.get(&#39;crosspostTarget&#39;, &#39;[]&#39;);&#xA;&#xA;&#x9;&#x9;&#x9;var http = new XMLHttpRequest();&#xA;&#x9;&#x9;&#x9;var post = H.getTitleStrict(content);&#xA;&#xA;&#x9;&#x9;&#x9;var params = {&#xA;&#x9;&#x9;&#x9;&#x9;body: post.content,&#xA;&#x9;&#x9;&#x9;&#x9;title: post.title,&#xA;&#x9;&#x9;&#x9;&#x9;font: font&#xA;&#x9;&#x9;&#x9;};&#xA;&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;var lang = navigator.languages ? navigator.languages[0] : (navigator.language || navigator.userLanguage);&#xA;&#x9;&#x9;&#x9;lang = lang.substring(0, 2);&#xA;&#x9;&#x9;&#x9;params.lang = lang;&#xA;&#xA;&#x9;&#x9;&#x9;var url = &#34;/api/posts&#34;;&#xA;&#x9;&#x9;&#x9;var postTarget = H.get(&#39;postTarget&#39;, &#39;anonymous&#39;);&#xA;&#x9;&#x9;&#x9;if (postTarget != &#39;anonymous&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;url = &#34;/api/collections/&#34; + postTarget + &#34;/posts&#34;;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;params.crosspost = JSON.parse(xpostTarg);&#xA;&#x9;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;&#x9;http.open(&#34;POST&#34;, url, true);&#xA;&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;http.setRequestHeader(&#34;Content-type&#34;, &#34;application/json&#34;);&#xA;&#xA;&#x9;&#x9;&#x9;http.onreadystatechange = function() {&#xA;&#x9;&#x9;&#x9;&#x9;if (http.readyState == 4) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;publishing = false;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if (http.status == 200 || http.status == 201) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;data = JSON.parse(http.responseText);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;id = data.data.id;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;nextURL = &#39;/&#39;+id;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;localStorage.setItem(&#39;draft&#39;+id+&#39;-published&#39;, new Date().toISOString());&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if (postTarget != &#39;anonymous&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;  nextURL = &#39;/&#39;+postTarget+&#39;/&#39;+data.data.slug;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;editToken = data.data.token;&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;justPublished = true;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if (draftDoc != &#39;lastDoc&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;H.remove(draftDoc);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;H.set(draftDoc, &#39;&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;window.location = nextURL;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.children[0].textContent = &#39;send&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;alert(&#34;Failed to post. Please try again.&#34;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;http.send(JSON.stringify(params));&#xA;&#x9;&#x9;};&#xA;&#xA;&#x9;&#x9;setButtonStates();&#xA;&#x9;&#x9;$writer.on(&#39;keyup input&#39;, function() {&#xA;&#x9;&#x9;&#x9;setButtonStates();&#xA;&#x9;&#x9;&#x9;clearTimeout(typingTimer);&#xA;&#x9;&#x9;&#x9;typingTimer = setTimeout(doneTyping, doneTypingInterval);&#xA;&#x9;&#x9;}, false);&#xA;&#x9;&#x9;$writer.on(&#39;keydown&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;clearTimeout(typingTimer);&#xA;&#x9;&#x9;&#x9;if (e.keyCode == 13 &amp;&amp; (e.metaKey || e.ctrlKey)) {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.click();&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;});&#xA;&#x9;&#x9;$btnPublish.on(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;if (!publishing &amp;&amp; $writer.el.value) {&#xA;&#x9;&#x9;&#x9;&#x9;var content = $writer.el.value;&#xA;&#x9;&#x9;&#x9;&#x9;publish(content, selectedFont);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;});&#xA;&#x9;&#x9;H.getEl(&#39;erase-edit&#39;).on(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;H.remove(draftDoc);&#xA;&#x9;&#x9;&#x9;H.remove(draftDoc+&#39;-published&#39;);&#xA;&#x9;&#x9;&#x9;justPublished = true; &#xA;&#x9;&#x9;&#x9;location.reload();&#xA;&#x9;&#x9;});&#xA;&#xA;&#x9;&#x9;H.getEl(&#39;toggle-theme&#39;).on(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;var newTheme = &#39;light&#39;;&#xA;&#x9;&#x9;&#x9;if (document.body.className == &#39;light&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;newTheme = &#39;dark&#39;;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;toggleTheme();&#xA;&#x9;&#x9;});&#xA;&#xA;&#x9;&#x9;var targets = document.querySelectorAll(&#39;#target li.target a&#39;);&#xA;&#x9;&#x9;for (var i=0; i&lt;targets.length; i++) {&#xA;&#x9;&#x9;&#x9;targets[i].addEventListener(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;&#x9;var targetName = this.href.substring(this.href.indexOf(&#39;#&#39;)+1);&#xA;&#x9;&#x9;&#x9;&#x9;H.set(&#39;postTarget&#39;, targetName);&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;document.querySelector(&#39;#target li.target.selected&#39;).classList.remove(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;this.parentElement.classList.add(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;var newText = this.innerText.split(&#39; &#39;);&#xA;&#x9;&#x9;&#x9;&#x9;newText.shift();&#xA;&#x9;&#x9;&#x9;&#x9;document.getElementById(&#39;target-name&#39;).innerText = newText.join(&#39; &#39;);&#xA;&#x9;&#x9;&#x9;});&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var postTarget = H.get(&#39;postTarget&#39;, &#39;painttemple5&#39;);&#xA;&#x9;&#x9;if (location.hash != &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;postTarget = location.hash.substring(1);&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;location.hash = &#39;&#39;;&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var pte = document.querySelector(&#39;#target li.target#blog-&#39;+postTarget+&#39; a&#39;);&#xA;&#x9;&#x9;if (pte != null) {&#xA;&#x9;&#x9;&#x9;pte.click();&#xA;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;postTarget = &#39;anonymous&#39;;&#xA;&#x9;&#x9;&#x9;H.set(&#39;postTarget&#39;, postTarget);&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;var sansLoaded = false;&#xA;&#x9;&#x9;WebFontConfig = {&#xA;&#x9;&#x9;&#x9;custom: { families: [ &#39;Lora:400,700:latin&#39; ], urls: [ &#39;/css/fonts.css&#39; ] }&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var loadSans = function() {&#xA;&#x9;&#x9;  if (sansLoaded) return;&#xA;&#x9;&#x9;  sansLoaded = true;&#xA;&#x9;&#x9;  WebFontConfig.custom.families.push(&#39;Open+Sans:400,700:latin&#39;);&#xA;&#x9;&#x9;  try {&#xA;&#x9;&#x9;&#x9;  (function() {&#xA;&#x9;&#x9;&#x9;&#x9;var wf=document.createElement(&#39;script&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;wf.src = &#39;/js/webfont.js&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;wf.type=&#39;text/javascript&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;wf.async=&#39;true&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;var s=document.getElementsByTagName(&#39;script&#39;)[0];&#xA;&#x9;&#x9;&#x9;&#x9;s.parentNode.insertBefore(wf, s);&#xA;&#x9;&#x9;&#x9;  })();&#xA;&#x9;&#x9;  } catch (e) {}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var fonts = document.querySelectorAll(&#39;nav#font-picker a.font&#39;);&#xA;&#x9;&#x9;for (var i=0; i&lt;fonts.length; i++) {&#xA;&#x9;&#x9;&#x9;fonts[i].addEventListener(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;&#x9;selectedFont = this.href.substring(this.href.indexOf(&#39;#&#39;)+1);&#xA;&#x9;&#x9;&#x9;&#x9;$writer.el.className = selectedFont;&#xA;&#x9;&#x9;&#x9;&#x9;document.querySelector(&#39;nav#font-picker li.selected&#39;).classList.remove(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;this.parentElement.classList.add(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;H.set(&#39;padFont&#39;, selectedFont);&#xA;&#x9;&#x9;&#x9;&#x9;if (selectedFont == &#39;sans&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;loadSans();&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;});&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var selectedFont = H.get(&#39;padFont&#39;, &#39;norm&#39;);&#xA;&#x9;&#x9;var sfe = document.querySelector(&#39;nav#font-picker a.font.&#39;+selectedFont);&#xA;&#x9;&#x9;if (sfe != null) {&#xA;&#x9;&#x9;&#x9;sfe.click();&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;var doneTyping = function() {&#xA;&#x9;&#x9;&#x9;if (draftDoc == &#39;lastDoc&#39; || $writer.el.value != origDoc) {&#xA;&#x9;&#x9;&#x9;&#x9;H.save($writer, draftDoc);&#xA;&#x9;&#x9;&#x9;&#x9;if (!defaultTimeSet) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;var lastLocalPublishStr = localStorage.getItem(draftDoc+&#39;-published&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if (lastLocalPublishStr == null || lastLocalPublishStr == &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;localStorage.setItem(draftDoc+&#39;-published&#39;, updatedStr);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;defaultTimeSet = true;&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;updateWordCount();&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;window.addEventListener(&#39;beforeunload&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;if (draftDoc != &#39;lastDoc&#39; &amp;&amp; $writer.el.value == origDoc) {&#xA;&#x9;&#x9;&#x9;&#x9;H.remove(draftDoc);&#xA;&#x9;&#x9;&#x9;&#x9;H.remove(draftDoc+&#39;-published&#39;);&#xA;&#x9;&#x9;&#x9;} else if (!justPublished) {&#xA;&#x9;&#x9;&#x9;&#x9;doneTyping();&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;});&#xA;&#xA;&#x9;&#x9;try {&#xA;&#x9;&#x9;  (function() {&#xA;&#x9;&#x9;&#x9;var wf=document.createElement(&#39;script&#39;);&#xA;&#x9;&#x9;&#x9;wf.src = &#39;/js/webfont.js&#39;;&#xA;&#x9;&#x9;&#x9;wf.type=&#39;text/javascript&#39;;&#xA;&#x9;&#x9;&#x9;wf.async=&#39;true&#39;;&#xA;&#x9;&#x9;&#x9;var s=document.getElementsByTagName(&#39;script&#39;)[0];&#xA;&#x9;&#x9;&#x9;s.parentNode.insertBefore(wf, s);&#xA;&#x9;&#x9;  })();&#xA;&#x9;&#x9;} catch (e) {&#xA;&#x9;&#x9;  &#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;/script&#xA;&#x9;&#x9;link href=&#34;/css/icons.css&#34; rel=&#34;stylesheet&#34;&#xA;&#x9;/body&#xA;/html]]&gt;</description>
      <content:encoded><![CDATA[<p>&lt;!DOCTYPE HTML&gt;

    </p>

<p>        </p>

<p>        </p>

<p>        </p>

<p>        
    
    </p>

<p>        <div id="overlay" id="overlay"></div></p>

<p>        </p>

<p>        <div class="alert success hidden" id="edited-elsewhere" id="edited-elsewhere">This post has been updated elsewhere since you last published! <a id="erase-edit" id="erase-edit">Delete draft and reload</a>.</div></p>

<p>        <header id="tools" id="tools">
            <div id="clip" id="clip">
                <h1><a href="/me/c/" title="View blogs"><img class="ic-24dp" src="/img/ic_blogs_dark@2x.png"/></a></h1>
                <ul>                        <li class="has-submenu"><a id="publish-to" id="publish-to"><span id="target-name" id="target-name">Draft</span> <img class="ic-18dp" src="/img/ic_down_arrow_dark@2x.png"/></a>
                        <ul>                            <li class="menu-heading">Publish to...</li></p>

<p>                                <li class="target selected" id="blog-painttemple5" id="blog-painttemple5"><a href="#painttemple5"><i class="material-icons md-18">public</i> painttemple5</a></li></p>

<p>                            <li class="target" id="blog-anonymous" id="blog-anonymous"><a href="#anonymous"><i class="material-icons md-18">description</i> <em>Draft</em></a></li>
                            <li id="user-separator" id="user-separator" class="separator"><hr/></li></p>

<p>                            <li><a href="/me/c/"><i class="material-icons md-18">library_books</i> View Blogs</a></li></p>

<p>                            <li><a href="/me/posts/"><i class="material-icons md-18">view<em>list</i> View Drafts</a></li>
                            <li><a href="/me/logout"><i class="material-icons md-18">power</em>settings<em>new</i>  Log out</a></li>
                        </ul>
                    </li>
                </ul>
                <ul>                        <li class="has-submenu"><a id="">&lt;img class=“ic-24dp” src=“/img/ic</em>font<em>dark@2x.png” /&gt; &lt;img class=“ic-18dp” src=“/img/ic</em>down<em>arrow</em>dark@2x.png” /&gt;</a>
                        <ul style="text-align: center">
                            <li class="menu-heading">Font</li>
                            <li class="selected"><a class="font norm" href="#norm">Serif</a></li>
                            <li><a class="font sans" href="#sans">Sans-serif</a></li>
                            <li><a class="font wrap" href="#wrap">Monospace</a></li>
                        </ul>
                    </li>
                </ul>
                <span id="wc" id="wc" class="hidden if-room room-4">0 words</span>
            </div>
            
            <div id="belt" id="belt"></p>

<p>                <div class="tool hidden if-room room-2"><a href="#theme" title="Toggle theme" id="toggle-theme" id="toggle-theme"><img class="ic-24dp" src="/img/ic_brightness_dark@2x.png"/></a></div>
                <div class="tool if-room room-1"><a href="/me/posts/" title="View posts" id="view-posts" id="view-posts"><img class="ic-24dp" src="/img/ic_list_dark@2x.png"/></a></div>
                <div class="tool"><a href="#publish" title="Publish" id="publish" id="publish"><img class="ic-24dp" src="/img/ic_send_dark@2x.png"/></a></div>
            </div>
        </header></p>

<p>        
        
        
        
    
</p>
]]></content:encoded>
      <guid>//painttemple5.bravejournal.net/be-on-the-lookout-for-how-robot-vacuum-cleaner-is-taking-over-and-what-you-can</guid>
      <pubDate>Thu, 19 Dec 2024 12:17:51 +0000</pubDate>
    </item>
    <item>
      <title>10 Key Factors Regarding Robot Vacuum Cleaner You Didn&#39;t Learn At School</title>
      <link>//painttemple5.bravejournal.net/10-key-factors-regarding-robot-vacuum-cleaner-you-didnt-learn-at-school</link>
      <description>&lt;![CDATA[!DOCTYPE HTML&#xA;html&#xA;&#x9;head&#xA;&#xA;&#x9;&#x9;titleNew Post &amp;mdash; bravejournal.net/title&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;/css/write.css&#34; /&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34; /&#xA;&#xA;&#x9;&#x9;meta name=&#34;google&#34; value=&#34;notranslate&#34;&#xA;&#x9;/head&#xA;&#x9;body id=&#34;pad&#34; class=&#34;light&#34;&#xA;&#xA;&#x9;&#x9;div id=&#34;overlay&#34;/div&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;textarea id=&#34;writer&#34; placeholder=&#34;Write...&#34; class=&#34;norm&#34; autofocus/textarea&#xA;&#xA;&#x9;&#x9;div class=&#34;alert success hidden&#34; id=&#34;edited-elsewhere&#34;This post has been updated elsewhere since you last published! a href=&#34;#&#34; id=&#34;erase-edit&#34;Delete draft and reload/a./div&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;header id=&#34;tools&#34;&#xA;&#x9;&#x9;&#x9;div id=&#34;clip&#34;&#xA;&#x9;&#x9;&#x9;&#x9;h1a href=&#34;/me/c/&#34; title=&#34;View blogs&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icblogsdark@2x.png&#34; //a/h1&#xA;&#x9;&#x9;&#x9;&#x9;nav id=&#34;target&#34; ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;has-submenu&#34;a href=&#34;#&#34; id=&#34;publish-to&#34; onclick=&#34;return false&#34;span id=&#34;target-name&#34;Draft/span img class=&#34;ic-18dp&#34; src=&#34;/img/icdownarrowdark@2x.png&#34; //a&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;menu-heading&#34;Publish to.../li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;target selected&#34; id=&#34;blog-painttemple5&#34;a href=&#34;#painttemple5&#34;i class=&#34;material-icons md-18&#34;public/i painttemple5/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;target&#34; id=&#34;blog-anonymous&#34;a href=&#34;#anonymous&#34;i class=&#34;material-icons md-18&#34;description/i emDraft/em/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li id=&#34;user-separator&#34; class=&#34;separator&#34;hr //li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia href=&#34;/me/c/&#34;i class=&#34;material-icons md-18&#34;librarybooks/i View Blogs/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia href=&#34;/me/posts/&#34;i class=&#34;material-icons md-18&#34;viewlist/i View Drafts/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia href=&#34;/me/logout&#34;i class=&#34;material-icons md-18&#34;powersettingsnew/i  Log out/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;/ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;/li&#xA;&#x9;&#x9;&#x9;&#x9;/ul/nav&#xA;&#x9;&#x9;&#x9;&#x9;nav id=&#34;font-picker&#34; class=&#34;if-room room-3 hidden&#34; style=&#34;margin-left:-1em&#34;ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;has-submenu&#34;a href=&#34;#&#34; id=&#34;&#34; onclick=&#34;return false&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icfontdark@2x.png&#34; / img class=&#34;ic-18dp&#34; src=&#34;/img/icdownarrowdark@2x.png&#34; //a&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;ul style=&#34;text-align: center&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;menu-heading&#34;Font/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;selected&#34;a class=&#34;font norm&#34; href=&#34;#norm&#34;Serif/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia class=&#34;font sans&#34; href=&#34;#sans&#34;Sans-serif/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia class=&#34;font wrap&#34; href=&#34;#wrap&#34;Monospace/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;/ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;/li&#xA;&#x9;&#x9;&#x9;&#x9;/ul/nav&#xA;&#x9;&#x9;&#x9;&#x9;span id=&#34;wc&#34; class=&#34;hidden if-room room-4&#34;0 words/span&#xA;&#x9;&#x9;&#x9;/div&#xA;&#x9;&#x9;&#x9;noscript style=&#34;margin-left: 2em;&#34;strongNOTE/strong: for now, you&#39;ll need Javascript enabled to post./noscript&#xA;&#x9;&#x9;&#x9;div id=&#34;belt&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;div class=&#34;tool hidden if-room room-2&#34;a href=&#34;#theme&#34; title=&#34;Toggle theme&#34; id=&#34;toggle-theme&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icbrightnessdark@2x.png&#34; //a/div&#xA;&#x9;&#x9;&#x9;&#x9;div class=&#34;tool if-room room-1&#34;a href=&#34;/me/posts/&#34; title=&#34;View posts&#34; id=&#34;view-posts&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/iclistdark@2x.png&#34; //a/div&#xA;&#x9;&#x9;&#x9;&#x9;div class=&#34;tool&#34;a href=&#34;#publish&#34; title=&#34;Publish&#34; id=&#34;publish&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icsenddark@2x.png&#34; //a/div&#xA;&#x9;&#x9;&#x9;/div&#xA;&#x9;&#x9;/header&#xA;&#xA;&#x9;&#x9;script src=&#34;/js/h.js&#34;/script&#xA;&#x9;&#x9;script type=&#34;text/javascript&#34; src=&#34;/js/menu.js&#34;/script&#xA;&#x9;&#x9;script&#xA;&#x9;&#x9;function toggleTheme() {&#xA;&#x9;&#x9;&#x9;if (document.body.classList.contains(&#39;light&#39;)) {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;dark&#39;);&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;light&#39;);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;H.set(&#39;padTheme&#39;, newTheme);&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;function setTheme(newTheme) {&#xA;&#x9;&#x9;&#x9;document.body.classList.remove(&#39;light&#39;);&#xA;&#x9;&#x9;&#x9;document.body.classList.remove(&#39;dark&#39;);&#xA;&#x9;&#x9;&#x9;document.body.classList.add(newTheme);&#xA;&#x9;&#x9;&#x9;var btns = Array.prototype.slice.call(document.getElementById(&#39;tools&#39;).querySelectorAll(&#39;a img&#39;));&#xA;&#x9;&#x9;&#x9;if (newTheme == &#39;light&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;if (H.get(&#39;padTheme&#39;, &#39;auto&#39;) == &#39;dark&#39;){&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;for (var i=0; i&lt;btns.length; i++) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;btns[i].src = btns[i].src.replace(&#39;@2x.png&#39;, &#39;dark@2x.png&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;for (var i=0; i&lt;btns.length; i++) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;btns[i].src = btns[i].src.replace(&#39;dark@2x.png&#39;, &#39;@2x.png&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;H.set(&#39;padTheme&#39;, newTheme);&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;if (H.get(&#39;padTheme&#39;, &#39;auto&#39;) == &#39;light&#39;) {&#xA;&#x9;&#x9;&#x9;setTheme(&#39;light&#39;);&#xA;&#x9;&#x9;} else if (H.get(&#39;padTheme&#39;, &#39;auto&#39;) == &#39;dark&#39;) {&#xA;&#x9;&#x9;&#x9;setTheme(&#39;dark&#39;);&#xA;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;const isDarkMode = window.matchMedia(&#34;(prefers-color-scheme: dark)&#34;).matches&#xA;&#x9;&#x9;&#x9;if (isDarkMode) {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;dark&#39;);&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;light&#39;);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;var $writer = H.getEl(&#39;writer&#39;);&#xA;&#x9;&#x9;var $btnPublish = H.getEl(&#39;publish&#39;);&#xA;&#x9;&#x9;var $btnEraseEdit = H.getEl(&#39;edited-elsewhere&#39;);&#xA;&#x9;&#x9;var $wc = H.getEl(&#34;wc&#34;);&#xA;&#x9;&#x9;var updateWordCount = function() {&#xA;&#x9;&#x9;&#x9;var words = 0;&#xA;&#x9;&#x9;&#x9;var val = $writer.el.value.trim();&#xA;&#x9;&#x9;&#x9;if (val != &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;words = $writer.el.value.trim().replace(/\s+/gi, &#39; &#39;).split(&#39; &#39;).length;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;$wc.el.innerText = words + &#34; word&#34; + (words != 1 ? &#34;s&#34; : &#34;&#34;);&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var setButtonStates = function() {&#xA;&#x9;&#x9;&#x9;if (!canPublish) {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.className = &#39;disabled&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;return;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;if ($writer.el.value.length === 0 || (draftDoc != &#39;lastDoc&#39; &amp;&amp; $writer.el.value == origDoc)) {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.className = &#39;disabled&#39;;&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.className = &#39;&#39;;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var draftDoc = &#39;lastDoc&#39;;&#xA;&#x9;&#x9;var updatedStr = &#39;&#39;;&#xA;&#x9;&#x9;var updated = null;&#xA;&#x9;&#x9;if (updatedStr != &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;updated = new Date(updatedStr);&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var ok = H.load($writer, draftDoc, true, updated);&#xA;&#x9;&#x9;if (!ok) {&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;$btnEraseEdit.el.classList.remove(&#39;hidden&#39;);&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var defaultTimeSet = false;&#xA;&#x9;&#x9;updateWordCount();&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;var typingTimer;&#xA;&#x9;&#x9;var doneTypingInterval = 200;&#xA;&#xA;&#x9;&#x9;var posts;&#xA;&#x9;&#x9;var canPublish = true;&#xA;&#x9;&#x9;var publishing = false;&#xA;&#x9;&#x9;var justPublished = false;&#xA;&#x9;&#x9;var silenced =  false ;&#xA;&#x9;&#x9;var publish = function(content, font) {&#xA;&#x9;&#x9;&#x9;if (silenced === true) {&#xA;&#x9;&#x9;&#x9;&#x9;alert(&#34;Your account is silenced, so you can&#39;t publish or update posts.&#34;);&#xA;&#x9;&#x9;&#x9;&#x9;return;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;$btnPublish.el.children[0].textContent = &#39;more_horiz&#39;;&#xA;&#x9;&#x9;&#x9;publishing = true;&#xA;&#x9;&#x9;&#x9;var xpostTarg = H.get(&#39;crosspostTarget&#39;, &#39;[]&#39;);&#xA;&#xA;&#x9;&#x9;&#x9;var http = new XMLHttpRequest();&#xA;&#x9;&#x9;&#x9;var post = H.getTitleStrict(content);&#xA;&#xA;&#x9;&#x9;&#x9;var params = {&#xA;&#x9;&#x9;&#x9;&#x9;body: post.content,&#xA;&#x9;&#x9;&#x9;&#x9;title: post.title,&#xA;&#x9;&#x9;&#x9;&#x9;font: font&#xA;&#x9;&#x9;&#x9;};&#xA;&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;var lang = navigator.languages ? navigator.languages[0] : (navigator.language || navigator.userLanguage);&#xA;&#x9;&#x9;&#x9;lang = lang.substring(0, 2);&#xA;&#x9;&#x9;&#x9;params.lang = lang;&#xA;&#xA;&#x9;&#x9;&#x9;var url = &#34;/api/posts&#34;;&#xA;&#x9;&#x9;&#x9;var postTarget = H.get(&#39;postTarget&#39;, &#39;anonymous&#39;);&#xA;&#x9;&#x9;&#x9;if (postTarget != &#39;anonymous&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;url = &#34;/api/collections/&#34; + postTarget + &#34;/posts&#34;;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;params.crosspost = JSON.parse(xpostTarg);&#xA;&#x9;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;&#x9;http.open(&#34;POST&#34;, url, true);&#xA;&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;http.setRequestHeader(&#34;Content-type&#34;, &#34;application/json&#34;);&#xA;&#xA;&#x9;&#x9;&#x9;http.onreadystatechange = function() {&#xA;&#x9;&#x9;&#x9;&#x9;if (http.readyState == 4) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;publishing = false;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if (http.status == 200 || http.status == 201) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;data = JSON.parse(http.responseText);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;id = data.data.id;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;nextURL = &#39;/&#39;+id;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;localStorage.setItem(&#39;draft&#39;+id+&#39;-published&#39;, new Date().toISOString());&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if (postTarget != &#39;anonymous&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;  nextURL = &#39;/&#39;+postTarget+&#39;/&#39;+data.data.slug;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;editToken = data.data.token;&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;justPublished = true;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if (draftDoc != &#39;lastDoc&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;H.remove(draftDoc);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;H.set(draftDoc, &#39;&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;window.location = nextURL;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.children[0].textContent = &#39;send&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;alert(&#34;Failed to post. Please try again.&#34;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;http.send(JSON.stringify(params));&#xA;&#x9;&#x9;};&#xA;&#xA;&#x9;&#x9;setButtonStates();&#xA;&#x9;&#x9;$writer.on(&#39;keyup input&#39;, function() {&#xA;&#x9;&#x9;&#x9;setButtonStates();&#xA;&#x9;&#x9;&#x9;clearTimeout(typingTimer);&#xA;&#x9;&#x9;&#x9;typingTimer = setTimeout(doneTyping, doneTypingInterval);&#xA;&#x9;&#x9;}, false);&#xA;&#x9;&#x9;$writer.on(&#39;keydown&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;clearTimeout(typingTimer);&#xA;&#x9;&#x9;&#x9;if (e.keyCode == 13 &amp;&amp; (e.metaKey || e.ctrlKey)) {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.click();&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;});&#xA;&#x9;&#x9;$btnPublish.on(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;if (!publishing &amp;&amp; $writer.el.value) {&#xA;&#x9;&#x9;&#x9;&#x9;var content = $writer.el.value;&#xA;&#x9;&#x9;&#x9;&#x9;publish(content, selectedFont);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;});&#xA;&#x9;&#x9;H.getEl(&#39;erase-edit&#39;).on(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;H.remove(draftDoc);&#xA;&#x9;&#x9;&#x9;H.remove(draftDoc+&#39;-published&#39;);&#xA;&#x9;&#x9;&#x9;justPublished = true; &#xA;&#x9;&#x9;&#x9;location.reload();&#xA;&#x9;&#x9;});&#xA;&#xA;&#x9;&#x9;H.getEl(&#39;toggle-theme&#39;).on(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;var newTheme = &#39;light&#39;;&#xA;&#x9;&#x9;&#x9;if (document.body.className == &#39;light&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;newTheme = &#39;dark&#39;;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;toggleTheme();&#xA;&#x9;&#x9;});&#xA;&#xA;&#x9;&#x9;var targets = document.querySelectorAll(&#39;#target li.target a&#39;);&#xA;&#x9;&#x9;for (var i=0; i&lt;targets.length; i++) {&#xA;&#x9;&#x9;&#x9;targets[i].addEventListener(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;&#x9;var targetName = this.href.substring(this.href.indexOf(&#39;#&#39;)+1);&#xA;&#x9;&#x9;&#x9;&#x9;H.set(&#39;postTarget&#39;, targetName);&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;document.querySelector(&#39;#target li.target.selected&#39;).classList.remove(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;this.parentElement.classList.add(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;var newText = this.innerText.split(&#39; &#39;);&#xA;&#x9;&#x9;&#x9;&#x9;newText.shift();&#xA;&#x9;&#x9;&#x9;&#x9;document.getElementById(&#39;target-name&#39;).innerText = newText.join(&#39; &#39;);&#xA;&#x9;&#x9;&#x9;});&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var postTarget = H.get(&#39;postTarget&#39;, &#39;painttemple5&#39;);&#xA;&#x9;&#x9;if (location.hash != &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;postTarget = location.hash.substring(1);&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;location.hash = &#39;&#39;;&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var pte = document.querySelector(&#39;#target li.target#blog-&#39;+postTarget+&#39; a&#39;);&#xA;&#x9;&#x9;if (pte != null) {&#xA;&#x9;&#x9;&#x9;pte.click();&#xA;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;postTarget = &#39;anonymous&#39;;&#xA;&#x9;&#x9;&#x9;H.set(&#39;postTarget&#39;, postTarget);&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;var sansLoaded = false;&#xA;&#x9;&#x9;WebFontConfig = {&#xA;&#x9;&#x9;&#x9;custom: { families: [ &#39;Lora:400,700:latin&#39; ], urls: [ &#39;/css/fonts.css&#39; ] }&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var loadSans = function() {&#xA;&#x9;&#x9;  if (sansLoaded) return;&#xA;&#x9;&#x9;  sansLoaded = true;&#xA;&#x9;&#x9;  WebFontConfig.custom.families.push(&#39;Open+Sans:400,700:latin&#39;);&#xA;&#x9;&#x9;  try {&#xA;&#x9;&#x9;&#x9;  (function() {&#xA;&#x9;&#x9;&#x9;&#x9;var wf=document.createElement(&#39;script&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;wf.src = &#39;/js/webfont.js&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;wf.type=&#39;text/javascript&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;wf.async=&#39;true&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;var s=document.getElementsByTagName(&#39;script&#39;)[0];&#xA;&#x9;&#x9;&#x9;&#x9;s.parentNode.insertBefore(wf, s);&#xA;&#x9;&#x9;&#x9;  })();&#xA;&#x9;&#x9;  } catch (e) {}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var fonts = document.querySelectorAll(&#39;nav#font-picker a.font&#39;);&#xA;&#x9;&#x9;for (var i=0; i&lt;fonts.length; i++) {&#xA;&#x9;&#x9;&#x9;fonts[i].addEventListener(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;&#x9;selectedFont = this.href.substring(this.href.indexOf(&#39;#&#39;)+1);&#xA;&#x9;&#x9;&#x9;&#x9;$writer.el.className = selectedFont;&#xA;&#x9;&#x9;&#x9;&#x9;document.querySelector(&#39;nav#font-picker li.selected&#39;).classList.remove(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;this.parentElement.classList.add(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;H.set(&#39;padFont&#39;, selectedFont);&#xA;&#x9;&#x9;&#x9;&#x9;if (selectedFont == &#39;sans&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;loadSans();&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;});&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var selectedFont = H.get(&#39;padFont&#39;, &#39;norm&#39;);&#xA;&#x9;&#x9;var sfe = document.querySelector(&#39;nav#font-picker a.font.&#39;+selectedFont);&#xA;&#x9;&#x9;if (sfe != null) {&#xA;&#x9;&#x9;&#x9;sfe.click();&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;var doneTyping = function() {&#xA;&#x9;&#x9;&#x9;if (draftDoc == &#39;lastDoc&#39; || $writer.el.value != origDoc) {&#xA;&#x9;&#x9;&#x9;&#x9;H.save($writer, draftDoc);&#xA;&#x9;&#x9;&#x9;&#x9;if (!defaultTimeSet) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;var lastLocalPublishStr = localStorage.getItem(draftDoc+&#39;-published&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if (lastLocalPublishStr == null || lastLocalPublishStr == &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;localStorage.setItem(draftDoc+&#39;-published&#39;, updatedStr);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;defaultTimeSet = true;&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;updateWordCount();&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;window.addEventListener(&#39;beforeunload&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;if (draftDoc != &#39;lastDoc&#39; &amp;&amp; $writer.el.value == origDoc) {&#xA;&#x9;&#x9;&#x9;&#x9;H.remove(draftDoc);&#xA;&#x9;&#x9;&#x9;&#x9;H.remove(draftDoc+&#39;-published&#39;);&#xA;&#x9;&#x9;&#x9;} else if (!justPublished) {&#xA;&#x9;&#x9;&#x9;&#x9;doneTyping();&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;});&#xA;&#xA;&#x9;&#x9;try {&#xA;&#x9;&#x9;  (function() {&#xA;&#x9;&#x9;&#x9;var wf=document.createElement(&#39;script&#39;);&#xA;&#x9;&#x9;&#x9;wf.src = &#39;/js/webfont.js&#39;;&#xA;&#x9;&#x9;&#x9;wf.type=&#39;text/javascript&#39;;&#xA;&#x9;&#x9;&#x9;wf.async=&#39;true&#39;;&#xA;&#x9;&#x9;&#x9;var s=document.getElementsByTagName(&#39;script&#39;)[0];&#xA;&#x9;&#x9;&#x9;s.parentNode.insertBefore(wf, s);&#xA;&#x9;&#x9;  })();&#xA;&#x9;&#x9;} catch (e) {&#xA;&#x9;&#x9;  &#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;/script&#xA;&#x9;&#x9;link href=&#34;/css/icons.css&#34; rel=&#34;stylesheet&#34;&#xA;&#x9;/body&#xA;/html]]&gt;</description>
      <content:encoded><![CDATA[<p>&lt;!DOCTYPE HTML&gt;

    </p>

<p>        </p>

<p>        </p>

<p>        </p>

<p>        
    
    </p>

<p>        <div id="overlay" id="overlay"></div></p>

<p>        </p>

<p>        <div class="alert success hidden" id="edited-elsewhere" id="edited-elsewhere">This post has been updated elsewhere since you last published! <a id="erase-edit" id="erase-edit">Delete draft and reload</a>.</div></p>

<p>        <header id="tools" id="tools">
            <div id="clip" id="clip">
                <h1><a href="/me/c/" title="View blogs"><img class="ic-24dp" src="/img/ic_blogs_dark@2x.png"/></a></h1>
                <ul>                        <li class="has-submenu"><a id="publish-to" id="publish-to"><span id="target-name" id="target-name">Draft</span> <img class="ic-18dp" src="/img/ic_down_arrow_dark@2x.png"/></a>
                        <ul>                            <li class="menu-heading">Publish to...</li></p>

<p>                                <li class="target selected" id="blog-painttemple5" id="blog-painttemple5"><a href="#painttemple5"><i class="material-icons md-18">public</i> painttemple5</a></li></p>

<p>                            <li class="target" id="blog-anonymous" id="blog-anonymous"><a href="#anonymous"><i class="material-icons md-18">description</i> <em>Draft</em></a></li>
                            <li id="user-separator" id="user-separator" class="separator"><hr/></li></p>

<p>                            <li><a href="/me/c/"><i class="material-icons md-18">library_books</i> View Blogs</a></li></p>

<p>                            <li><a href="/me/posts/"><i class="material-icons md-18">view<em>list</i> View Drafts</a></li>
                            <li><a href="/me/logout"><i class="material-icons md-18">power</em>settings<em>new</i>  Log out</a></li>
                        </ul>
                    </li>
                </ul>
                <ul>                        <li class="has-submenu"><a id="">&lt;img class=“ic-24dp” src=“/img/ic</em>font<em>dark@2x.png” /&gt; &lt;img class=“ic-18dp” src=“/img/ic</em>down<em>arrow</em>dark@2x.png” /&gt;</a>
                        <ul style="text-align: center">
                            <li class="menu-heading">Font</li>
                            <li class="selected"><a class="font norm" href="#norm">Serif</a></li>
                            <li><a class="font sans" href="#sans">Sans-serif</a></li>
                            <li><a class="font wrap" href="#wrap">Monospace</a></li>
                        </ul>
                    </li>
                </ul>
                <span id="wc" id="wc" class="hidden if-room room-4">0 words</span>
            </div>
            
            <div id="belt" id="belt"></p>

<p>                <div class="tool hidden if-room room-2"><a href="#theme" title="Toggle theme" id="toggle-theme" id="toggle-theme"><img class="ic-24dp" src="/img/ic_brightness_dark@2x.png"/></a></div>
                <div class="tool if-room room-1"><a href="/me/posts/" title="View posts" id="view-posts" id="view-posts"><img class="ic-24dp" src="/img/ic_list_dark@2x.png"/></a></div>
                <div class="tool"><a href="#publish" title="Publish" id="publish" id="publish"><img class="ic-24dp" src="/img/ic_send_dark@2x.png"/></a></div>
            </div>
        </header></p>

<p>        
        
        
        
    
</p>
]]></content:encoded>
      <guid>//painttemple5.bravejournal.net/10-key-factors-regarding-robot-vacuum-cleaner-you-didnt-learn-at-school</guid>
      <pubDate>Thu, 19 Dec 2024 12:17:20 +0000</pubDate>
    </item>
    <item>
      <title>Why We Love Robot Vacuum Cleaner (And You Should Too!)</title>
      <link>//painttemple5.bravejournal.net/why-we-love-robot-vacuum-cleaner-and-you-should-too</link>
      <description>&lt;![CDATA[!DOCTYPE HTML&#xA;html&#xA;&#x9;head&#xA;&#xA;&#x9;&#x9;titleNew Post &amp;mdash; bravejournal.net/title&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;/css/write.css&#34; /&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34; /&#xA;&#xA;&#x9;&#x9;meta name=&#34;google&#34; value=&#34;notranslate&#34;&#xA;&#x9;/head&#xA;&#x9;body id=&#34;pad&#34; class=&#34;light&#34;&#xA;&#xA;&#x9;&#x9;div id=&#34;overlay&#34;/div&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;textarea id=&#34;writer&#34; placeholder=&#34;Write...&#34; class=&#34;norm&#34; autofocus/textarea&#xA;&#xA;&#x9;&#x9;div class=&#34;alert success hidden&#34; id=&#34;edited-elsewhere&#34;This post has been updated elsewhere since you last published! a href=&#34;#&#34; id=&#34;erase-edit&#34;Delete draft and reload/a./div&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;header id=&#34;tools&#34;&#xA;&#x9;&#x9;&#x9;div id=&#34;clip&#34;&#xA;&#x9;&#x9;&#x9;&#x9;h1a href=&#34;/me/c/&#34; title=&#34;View blogs&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icblogsdark@2x.png&#34; //a/h1&#xA;&#x9;&#x9;&#x9;&#x9;nav id=&#34;target&#34; ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;has-submenu&#34;a href=&#34;#&#34; id=&#34;publish-to&#34; onclick=&#34;return false&#34;span id=&#34;target-name&#34;Draft/span img class=&#34;ic-18dp&#34; src=&#34;/img/icdownarrowdark@2x.png&#34; //a&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;menu-heading&#34;Publish to.../li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;target selected&#34; id=&#34;blog-painttemple5&#34;a href=&#34;#painttemple5&#34;i class=&#34;material-icons md-18&#34;public/i painttemple5/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;target&#34; id=&#34;blog-anonymous&#34;a href=&#34;#anonymous&#34;i class=&#34;material-icons md-18&#34;description/i emDraft/em/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li id=&#34;user-separator&#34; class=&#34;separator&#34;hr //li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia href=&#34;/me/c/&#34;i class=&#34;material-icons md-18&#34;librarybooks/i View Blogs/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia href=&#34;/me/posts/&#34;i class=&#34;material-icons md-18&#34;viewlist/i View Drafts/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia href=&#34;/me/logout&#34;i class=&#34;material-icons md-18&#34;powersettingsnew/i  Log out/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;/ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;/li&#xA;&#x9;&#x9;&#x9;&#x9;/ul/nav&#xA;&#x9;&#x9;&#x9;&#x9;nav id=&#34;font-picker&#34; class=&#34;if-room room-3 hidden&#34; style=&#34;margin-left:-1em&#34;ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;has-submenu&#34;a href=&#34;#&#34; id=&#34;&#34; onclick=&#34;return false&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icfontdark@2x.png&#34; / img class=&#34;ic-18dp&#34; src=&#34;/img/icdownarrowdark@2x.png&#34; //a&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;ul style=&#34;text-align: center&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;menu-heading&#34;Font/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;selected&#34;a class=&#34;font norm&#34; href=&#34;#norm&#34;Serif/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia class=&#34;font sans&#34; href=&#34;#sans&#34;Sans-serif/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia class=&#34;font wrap&#34; href=&#34;#wrap&#34;Monospace/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;/ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;/li&#xA;&#x9;&#x9;&#x9;&#x9;/ul/nav&#xA;&#x9;&#x9;&#x9;&#x9;span id=&#34;wc&#34; class=&#34;hidden if-room room-4&#34;0 words/span&#xA;&#x9;&#x9;&#x9;/div&#xA;&#x9;&#x9;&#x9;noscript style=&#34;margin-left: 2em;&#34;strongNOTE/strong: for now, you&#39;ll need Javascript enabled to post./noscript&#xA;&#x9;&#x9;&#x9;div id=&#34;belt&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;div class=&#34;tool hidden if-room room-2&#34;a href=&#34;#theme&#34; title=&#34;Toggle theme&#34; id=&#34;toggle-theme&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icbrightnessdark@2x.png&#34; //a/div&#xA;&#x9;&#x9;&#x9;&#x9;div class=&#34;tool if-room room-1&#34;a href=&#34;/me/posts/&#34; title=&#34;View posts&#34; id=&#34;view-posts&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/iclistdark@2x.png&#34; //a/div&#xA;&#x9;&#x9;&#x9;&#x9;div class=&#34;tool&#34;a href=&#34;#publish&#34; title=&#34;Publish&#34; id=&#34;publish&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icsenddark@2x.png&#34; //a/div&#xA;&#x9;&#x9;&#x9;/div&#xA;&#x9;&#x9;/header&#xA;&#xA;&#x9;&#x9;script src=&#34;/js/h.js&#34;/script&#xA;&#x9;&#x9;script type=&#34;text/javascript&#34; src=&#34;/js/menu.js&#34;/script&#xA;&#x9;&#x9;script&#xA;&#x9;&#x9;function toggleTheme() {&#xA;&#x9;&#x9;&#x9;if (document.body.classList.contains(&#39;light&#39;)) {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;dark&#39;);&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;light&#39;);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;H.set(&#39;padTheme&#39;, newTheme);&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;function setTheme(newTheme) {&#xA;&#x9;&#x9;&#x9;document.body.classList.remove(&#39;light&#39;);&#xA;&#x9;&#x9;&#x9;document.body.classList.remove(&#39;dark&#39;);&#xA;&#x9;&#x9;&#x9;document.body.classList.add(newTheme);&#xA;&#x9;&#x9;&#x9;var btns = Array.prototype.slice.call(document.getElementById(&#39;tools&#39;).querySelectorAll(&#39;a img&#39;));&#xA;&#x9;&#x9;&#x9;if (newTheme == &#39;light&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;if (H.get(&#39;padTheme&#39;, &#39;auto&#39;) == &#39;dark&#39;){&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;for (var i=0; i&lt;btns.length; i++) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;btns[i].src = btns[i].src.replace(&#39;@2x.png&#39;, &#39;dark@2x.png&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;for (var i=0; i&lt;btns.length; i++) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;btns[i].src = btns[i].src.replace(&#39;dark@2x.png&#39;, &#39;@2x.png&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;H.set(&#39;padTheme&#39;, newTheme);&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;if (H.get(&#39;padTheme&#39;, &#39;auto&#39;) == &#39;light&#39;) {&#xA;&#x9;&#x9;&#x9;setTheme(&#39;light&#39;);&#xA;&#x9;&#x9;} else if (H.get(&#39;padTheme&#39;, &#39;auto&#39;) == &#39;dark&#39;) {&#xA;&#x9;&#x9;&#x9;setTheme(&#39;dark&#39;);&#xA;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;const isDarkMode = window.matchMedia(&#34;(prefers-color-scheme: dark)&#34;).matches&#xA;&#x9;&#x9;&#x9;if (isDarkMode) {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;dark&#39;);&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;light&#39;);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;var $writer = H.getEl(&#39;writer&#39;);&#xA;&#x9;&#x9;var $btnPublish = H.getEl(&#39;publish&#39;);&#xA;&#x9;&#x9;var $btnEraseEdit = H.getEl(&#39;edited-elsewhere&#39;);&#xA;&#x9;&#x9;var $wc = H.getEl(&#34;wc&#34;);&#xA;&#x9;&#x9;var updateWordCount = function() {&#xA;&#x9;&#x9;&#x9;var words = 0;&#xA;&#x9;&#x9;&#x9;var val = $writer.el.value.trim();&#xA;&#x9;&#x9;&#x9;if (val != &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;words = $writer.el.value.trim().replace(/\s+/gi, &#39; &#39;).split(&#39; &#39;).length;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;$wc.el.innerText = words + &#34; word&#34; + (words != 1 ? &#34;s&#34; : &#34;&#34;);&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var setButtonStates = function() {&#xA;&#x9;&#x9;&#x9;if (!canPublish) {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.className = &#39;disabled&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;return;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;if ($writer.el.value.length === 0 || (draftDoc != &#39;lastDoc&#39; &amp;&amp; $writer.el.value == origDoc)) {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.className = &#39;disabled&#39;;&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.className = &#39;&#39;;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var draftDoc = &#39;lastDoc&#39;;&#xA;&#x9;&#x9;var updatedStr = &#39;&#39;;&#xA;&#x9;&#x9;var updated = null;&#xA;&#x9;&#x9;if (updatedStr != &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;updated = new Date(updatedStr);&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var ok = H.load($writer, draftDoc, true, updated);&#xA;&#x9;&#x9;if (!ok) {&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;$btnEraseEdit.el.classList.remove(&#39;hidden&#39;);&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var defaultTimeSet = false;&#xA;&#x9;&#x9;updateWordCount();&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;var typingTimer;&#xA;&#x9;&#x9;var doneTypingInterval = 200;&#xA;&#xA;&#x9;&#x9;var posts;&#xA;&#x9;&#x9;var canPublish = true;&#xA;&#x9;&#x9;var publishing = false;&#xA;&#x9;&#x9;var justPublished = false;&#xA;&#x9;&#x9;var silenced =  false ;&#xA;&#x9;&#x9;var publish = function(content, font) {&#xA;&#x9;&#x9;&#x9;if (silenced === true) {&#xA;&#x9;&#x9;&#x9;&#x9;alert(&#34;Your account is silenced, so you can&#39;t publish or update posts.&#34;);&#xA;&#x9;&#x9;&#x9;&#x9;return;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;$btnPublish.el.children[0].textContent = &#39;more_horiz&#39;;&#xA;&#x9;&#x9;&#x9;publishing = true;&#xA;&#x9;&#x9;&#x9;var xpostTarg = H.get(&#39;crosspostTarget&#39;, &#39;[]&#39;);&#xA;&#xA;&#x9;&#x9;&#x9;var http = new XMLHttpRequest();&#xA;&#x9;&#x9;&#x9;var post = H.getTitleStrict(content);&#xA;&#xA;&#x9;&#x9;&#x9;var params = {&#xA;&#x9;&#x9;&#x9;&#x9;body: post.content,&#xA;&#x9;&#x9;&#x9;&#x9;title: post.title,&#xA;&#x9;&#x9;&#x9;&#x9;font: font&#xA;&#x9;&#x9;&#x9;};&#xA;&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;var lang = navigator.languages ? navigator.languages[0] : (navigator.language || navigator.userLanguage);&#xA;&#x9;&#x9;&#x9;lang = lang.substring(0, 2);&#xA;&#x9;&#x9;&#x9;params.lang = lang;&#xA;&#xA;&#x9;&#x9;&#x9;var url = &#34;/api/posts&#34;;&#xA;&#x9;&#x9;&#x9;var postTarget = H.get(&#39;postTarget&#39;, &#39;anonymous&#39;);&#xA;&#x9;&#x9;&#x9;if (postTarget != &#39;anonymous&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;url = &#34;/api/collections/&#34; + postTarget + &#34;/posts&#34;;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;params.crosspost = JSON.parse(xpostTarg);&#xA;&#x9;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;&#x9;http.open(&#34;POST&#34;, url, true);&#xA;&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;http.setRequestHeader(&#34;Content-type&#34;, &#34;application/json&#34;);&#xA;&#xA;&#x9;&#x9;&#x9;http.onreadystatechange = function() {&#xA;&#x9;&#x9;&#x9;&#x9;if (http.readyState == 4) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;publishing = false;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if (http.status == 200 || http.status == 201) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;data = JSON.parse(http.responseText);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;id = data.data.id;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;nextURL = &#39;/&#39;+id;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;localStorage.setItem(&#39;draft&#39;+id+&#39;-published&#39;, new Date().toISOString());&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if (postTarget != &#39;anonymous&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;  nextURL = &#39;/&#39;+postTarget+&#39;/&#39;+data.data.slug;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;editToken = data.data.token;&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;justPublished = true;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if (draftDoc != &#39;lastDoc&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;H.remove(draftDoc);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;H.set(draftDoc, &#39;&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;window.location = nextURL;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.children[0].textContent = &#39;send&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;alert(&#34;Failed to post. Please try again.&#34;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;http.send(JSON.stringify(params));&#xA;&#x9;&#x9;};&#xA;&#xA;&#x9;&#x9;setButtonStates();&#xA;&#x9;&#x9;$writer.on(&#39;keyup input&#39;, function() {&#xA;&#x9;&#x9;&#x9;setButtonStates();&#xA;&#x9;&#x9;&#x9;clearTimeout(typingTimer);&#xA;&#x9;&#x9;&#x9;typingTimer = setTimeout(doneTyping, doneTypingInterval);&#xA;&#x9;&#x9;}, false);&#xA;&#x9;&#x9;$writer.on(&#39;keydown&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;clearTimeout(typingTimer);&#xA;&#x9;&#x9;&#x9;if (e.keyCode == 13 &amp;&amp; (e.metaKey || e.ctrlKey)) {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.click();&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;});&#xA;&#x9;&#x9;$btnPublish.on(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;if (!publishing &amp;&amp; $writer.el.value) {&#xA;&#x9;&#x9;&#x9;&#x9;var content = $writer.el.value;&#xA;&#x9;&#x9;&#x9;&#x9;publish(content, selectedFont);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;});&#xA;&#x9;&#x9;H.getEl(&#39;erase-edit&#39;).on(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;H.remove(draftDoc);&#xA;&#x9;&#x9;&#x9;H.remove(draftDoc+&#39;-published&#39;);&#xA;&#x9;&#x9;&#x9;justPublished = true; &#xA;&#x9;&#x9;&#x9;location.reload();&#xA;&#x9;&#x9;});&#xA;&#xA;&#x9;&#x9;H.getEl(&#39;toggle-theme&#39;).on(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;var newTheme = &#39;light&#39;;&#xA;&#x9;&#x9;&#x9;if (document.body.className == &#39;light&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;newTheme = &#39;dark&#39;;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;toggleTheme();&#xA;&#x9;&#x9;});&#xA;&#xA;&#x9;&#x9;var targets = document.querySelectorAll(&#39;#target li.target a&#39;);&#xA;&#x9;&#x9;for (var i=0; i&lt;targets.length; i++) {&#xA;&#x9;&#x9;&#x9;targets[i].addEventListener(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;&#x9;var targetName = this.href.substring(this.href.indexOf(&#39;#&#39;)+1);&#xA;&#x9;&#x9;&#x9;&#x9;H.set(&#39;postTarget&#39;, targetName);&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;document.querySelector(&#39;#target li.target.selected&#39;).classList.remove(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;this.parentElement.classList.add(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;var newText = this.innerText.split(&#39; &#39;);&#xA;&#x9;&#x9;&#x9;&#x9;newText.shift();&#xA;&#x9;&#x9;&#x9;&#x9;document.getElementById(&#39;target-name&#39;).innerText = newText.join(&#39; &#39;);&#xA;&#x9;&#x9;&#x9;});&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var postTarget = H.get(&#39;postTarget&#39;, &#39;painttemple5&#39;);&#xA;&#x9;&#x9;if (location.hash != &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;postTarget = location.hash.substring(1);&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;location.hash = &#39;&#39;;&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var pte = document.querySelector(&#39;#target li.target#blog-&#39;+postTarget+&#39; a&#39;);&#xA;&#x9;&#x9;if (pte != null) {&#xA;&#x9;&#x9;&#x9;pte.click();&#xA;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;postTarget = &#39;anonymous&#39;;&#xA;&#x9;&#x9;&#x9;H.set(&#39;postTarget&#39;, postTarget);&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;var sansLoaded = false;&#xA;&#x9;&#x9;WebFontConfig = {&#xA;&#x9;&#x9;&#x9;custom: { families: [ &#39;Lora:400,700:latin&#39; ], urls: [ &#39;/css/fonts.css&#39; ] }&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var loadSans = function() {&#xA;&#x9;&#x9;  if (sansLoaded) return;&#xA;&#x9;&#x9;  sansLoaded = true;&#xA;&#x9;&#x9;  WebFontConfig.custom.families.push(&#39;Open+Sans:400,700:latin&#39;);&#xA;&#x9;&#x9;  try {&#xA;&#x9;&#x9;&#x9;  (function() {&#xA;&#x9;&#x9;&#x9;&#x9;var wf=document.createElement(&#39;script&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;wf.src = &#39;/js/webfont.js&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;wf.type=&#39;text/javascript&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;wf.async=&#39;true&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;var s=document.getElementsByTagName(&#39;script&#39;)[0];&#xA;&#x9;&#x9;&#x9;&#x9;s.parentNode.insertBefore(wf, s);&#xA;&#x9;&#x9;&#x9;  })();&#xA;&#x9;&#x9;  } catch (e) {}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var fonts = document.querySelectorAll(&#39;nav#font-picker a.font&#39;);&#xA;&#x9;&#x9;for (var i=0; i&lt;fonts.length; i++) {&#xA;&#x9;&#x9;&#x9;fonts[i].addEventListener(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;&#x9;selectedFont = this.href.substring(this.href.indexOf(&#39;#&#39;)+1);&#xA;&#x9;&#x9;&#x9;&#x9;$writer.el.className = selectedFont;&#xA;&#x9;&#x9;&#x9;&#x9;document.querySelector(&#39;nav#font-picker li.selected&#39;).classList.remove(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;this.parentElement.classList.add(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;H.set(&#39;padFont&#39;, selectedFont);&#xA;&#x9;&#x9;&#x9;&#x9;if (selectedFont == &#39;sans&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;loadSans();&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;});&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var selectedFont = H.get(&#39;padFont&#39;, &#39;norm&#39;);&#xA;&#x9;&#x9;var sfe = document.querySelector(&#39;nav#font-picker a.font.&#39;+selectedFont);&#xA;&#x9;&#x9;if (sfe != null) {&#xA;&#x9;&#x9;&#x9;sfe.click();&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;var doneTyping = function() {&#xA;&#x9;&#x9;&#x9;if (draftDoc == &#39;lastDoc&#39; || $writer.el.value != origDoc) {&#xA;&#x9;&#x9;&#x9;&#x9;H.save($writer, draftDoc);&#xA;&#x9;&#x9;&#x9;&#x9;if (!defaultTimeSet) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;var lastLocalPublishStr = localStorage.getItem(draftDoc+&#39;-published&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if (lastLocalPublishStr == null || lastLocalPublishStr == &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;localStorage.setItem(draftDoc+&#39;-published&#39;, updatedStr);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;defaultTimeSet = true;&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;updateWordCount();&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;window.addEventListener(&#39;beforeunload&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;if (draftDoc != &#39;lastDoc&#39; &amp;&amp; $writer.el.value == origDoc) {&#xA;&#x9;&#x9;&#x9;&#x9;H.remove(draftDoc);&#xA;&#x9;&#x9;&#x9;&#x9;H.remove(draftDoc+&#39;-published&#39;);&#xA;&#x9;&#x9;&#x9;} else if (!justPublished) {&#xA;&#x9;&#x9;&#x9;&#x9;doneTyping();&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;});&#xA;&#xA;&#x9;&#x9;try {&#xA;&#x9;&#x9;  (function() {&#xA;&#x9;&#x9;&#x9;var wf=document.createElement(&#39;script&#39;);&#xA;&#x9;&#x9;&#x9;wf.src = &#39;/js/webfont.js&#39;;&#xA;&#x9;&#x9;&#x9;wf.type=&#39;text/javascript&#39;;&#xA;&#x9;&#x9;&#x9;wf.async=&#39;true&#39;;&#xA;&#x9;&#x9;&#x9;var s=document.getElementsByTagName(&#39;script&#39;)[0];&#xA;&#x9;&#x9;&#x9;s.parentNode.insertBefore(wf, s);&#xA;&#x9;&#x9;  })();&#xA;&#x9;&#x9;} catch (e) {&#xA;&#x9;&#x9;  &#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;/script&#xA;&#x9;&#x9;link href=&#34;/css/icons.css&#34; rel=&#34;stylesheet&#34;&#xA;&#x9;/body&#xA;/html]]&gt;</description>
      <content:encoded><![CDATA[<p>&lt;!DOCTYPE HTML&gt;

    </p>

<p>        </p>

<p>        </p>

<p>        </p>

<p>        
    
    </p>

<p>        <div id="overlay" id="overlay"></div></p>

<p>        </p>

<p>        <div class="alert success hidden" id="edited-elsewhere" id="edited-elsewhere">This post has been updated elsewhere since you last published! <a id="erase-edit" id="erase-edit">Delete draft and reload</a>.</div></p>

<p>        <header id="tools" id="tools">
            <div id="clip" id="clip">
                <h1><a href="/me/c/" title="View blogs"><img class="ic-24dp" src="/img/ic_blogs_dark@2x.png"/></a></h1>
                <ul>                        <li class="has-submenu"><a id="publish-to" id="publish-to"><span id="target-name" id="target-name">Draft</span> <img class="ic-18dp" src="/img/ic_down_arrow_dark@2x.png"/></a>
                        <ul>                            <li class="menu-heading">Publish to...</li></p>

<p>                                <li class="target selected" id="blog-painttemple5" id="blog-painttemple5"><a href="#painttemple5"><i class="material-icons md-18">public</i> painttemple5</a></li></p>

<p>                            <li class="target" id="blog-anonymous" id="blog-anonymous"><a href="#anonymous"><i class="material-icons md-18">description</i> <em>Draft</em></a></li>
                            <li id="user-separator" id="user-separator" class="separator"><hr/></li></p>

<p>                            <li><a href="/me/c/"><i class="material-icons md-18">library_books</i> View Blogs</a></li></p>

<p>                            <li><a href="/me/posts/"><i class="material-icons md-18">view<em>list</i> View Drafts</a></li>
                            <li><a href="/me/logout"><i class="material-icons md-18">power</em>settings<em>new</i>  Log out</a></li>
                        </ul>
                    </li>
                </ul>
                <ul>                        <li class="has-submenu"><a id="">&lt;img class=“ic-24dp” src=“/img/ic</em>font<em>dark@2x.png” /&gt; &lt;img class=“ic-18dp” src=“/img/ic</em>down<em>arrow</em>dark@2x.png” /&gt;</a>
                        <ul style="text-align: center">
                            <li class="menu-heading">Font</li>
                            <li class="selected"><a class="font norm" href="#norm">Serif</a></li>
                            <li><a class="font sans" href="#sans">Sans-serif</a></li>
                            <li><a class="font wrap" href="#wrap">Monospace</a></li>
                        </ul>
                    </li>
                </ul>
                <span id="wc" id="wc" class="hidden if-room room-4">0 words</span>
            </div>
            
            <div id="belt" id="belt"></p>

<p>                <div class="tool hidden if-room room-2"><a href="#theme" title="Toggle theme" id="toggle-theme" id="toggle-theme"><img class="ic-24dp" src="/img/ic_brightness_dark@2x.png"/></a></div>
                <div class="tool if-room room-1"><a href="/me/posts/" title="View posts" id="view-posts" id="view-posts"><img class="ic-24dp" src="/img/ic_list_dark@2x.png"/></a></div>
                <div class="tool"><a href="#publish" title="Publish" id="publish" id="publish"><img class="ic-24dp" src="/img/ic_send_dark@2x.png"/></a></div>
            </div>
        </header></p>

<p>        
        
        
        
    
</p>
]]></content:encoded>
      <guid>//painttemple5.bravejournal.net/why-we-love-robot-vacuum-cleaner-and-you-should-too</guid>
      <pubDate>Thu, 19 Dec 2024 12:16:49 +0000</pubDate>
    </item>
    <item>
      <title>An Adventure Back In Time The Conversations People Had About Robot Vacuum Cleaner 20 Years Ago</title>
      <link>//painttemple5.bravejournal.net/an-adventure-back-in-time-the-conversations-people-had-about-robot-vacuum</link>
      <description>&lt;![CDATA[!DOCTYPE HTML&#xA;html&#xA;&#x9;head&#xA;&#xA;&#x9;&#x9;titleNew Post &amp;mdash; bravejournal.net/title&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;/css/write.css&#34; /&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34; /&#xA;&#xA;&#x9;&#x9;meta name=&#34;google&#34; value=&#34;notranslate&#34;&#xA;&#x9;/head&#xA;&#x9;body id=&#34;pad&#34; class=&#34;light&#34;&#xA;&#xA;&#x9;&#x9;div id=&#34;overlay&#34;/div&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;textarea id=&#34;writer&#34; placeholder=&#34;Write...&#34; class=&#34;norm&#34; autofocus/textarea&#xA;&#xA;&#x9;&#x9;div class=&#34;alert success hidden&#34; id=&#34;edited-elsewhere&#34;This post has been updated elsewhere since you last published! a href=&#34;#&#34; id=&#34;erase-edit&#34;Delete draft and reload/a./div&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;header id=&#34;tools&#34;&#xA;&#x9;&#x9;&#x9;div id=&#34;clip&#34;&#xA;&#x9;&#x9;&#x9;&#x9;h1a href=&#34;/me/c/&#34; title=&#34;View blogs&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icblogsdark@2x.png&#34; //a/h1&#xA;&#x9;&#x9;&#x9;&#x9;nav id=&#34;target&#34; ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;has-submenu&#34;a href=&#34;#&#34; id=&#34;publish-to&#34; onclick=&#34;return false&#34;span id=&#34;target-name&#34;Draft/span img class=&#34;ic-18dp&#34; src=&#34;/img/icdownarrowdark@2x.png&#34; //a&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;menu-heading&#34;Publish to.../li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;target selected&#34; id=&#34;blog-painttemple5&#34;a href=&#34;#painttemple5&#34;i class=&#34;material-icons md-18&#34;public/i painttemple5/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;target&#34; id=&#34;blog-anonymous&#34;a href=&#34;#anonymous&#34;i class=&#34;material-icons md-18&#34;description/i emDraft/em/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li id=&#34;user-separator&#34; class=&#34;separator&#34;hr //li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia href=&#34;/me/c/&#34;i class=&#34;material-icons md-18&#34;librarybooks/i View Blogs/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia href=&#34;/me/posts/&#34;i class=&#34;material-icons md-18&#34;viewlist/i View Drafts/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia href=&#34;/me/logout&#34;i class=&#34;material-icons md-18&#34;powersettingsnew/i  Log out/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;/ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;/li&#xA;&#x9;&#x9;&#x9;&#x9;/ul/nav&#xA;&#x9;&#x9;&#x9;&#x9;nav id=&#34;font-picker&#34; class=&#34;if-room room-3 hidden&#34; style=&#34;margin-left:-1em&#34;ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;has-submenu&#34;a href=&#34;#&#34; id=&#34;&#34; onclick=&#34;return false&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icfontdark@2x.png&#34; / img class=&#34;ic-18dp&#34; src=&#34;/img/icdownarrowdark@2x.png&#34; //a&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;ul style=&#34;text-align: center&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;menu-heading&#34;Font/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;selected&#34;a class=&#34;font norm&#34; href=&#34;#norm&#34;Serif/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia class=&#34;font sans&#34; href=&#34;#sans&#34;Sans-serif/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia class=&#34;font wrap&#34; href=&#34;#wrap&#34;Monospace/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;/ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;/li&#xA;&#x9;&#x9;&#x9;&#x9;/ul/nav&#xA;&#x9;&#x9;&#x9;&#x9;span id=&#34;wc&#34; class=&#34;hidden if-room room-4&#34;0 words/span&#xA;&#x9;&#x9;&#x9;/div&#xA;&#x9;&#x9;&#x9;noscript style=&#34;margin-left: 2em;&#34;strongNOTE/strong: for now, you&#39;ll need Javascript enabled to post./noscript&#xA;&#x9;&#x9;&#x9;div id=&#34;belt&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;div class=&#34;tool hidden if-room room-2&#34;a href=&#34;#theme&#34; title=&#34;Toggle theme&#34; id=&#34;toggle-theme&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icbrightnessdark@2x.png&#34; //a/div&#xA;&#x9;&#x9;&#x9;&#x9;div class=&#34;tool if-room room-1&#34;a href=&#34;/me/posts/&#34; title=&#34;View posts&#34; id=&#34;view-posts&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/iclistdark@2x.png&#34; //a/div&#xA;&#x9;&#x9;&#x9;&#x9;div class=&#34;tool&#34;a href=&#34;#publish&#34; title=&#34;Publish&#34; id=&#34;publish&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icsenddark@2x.png&#34; //a/div&#xA;&#x9;&#x9;&#x9;/div&#xA;&#x9;&#x9;/header&#xA;&#xA;&#x9;&#x9;script src=&#34;/js/h.js&#34;/script&#xA;&#x9;&#x9;script type=&#34;text/javascript&#34; src=&#34;/js/menu.js&#34;/script&#xA;&#x9;&#x9;script&#xA;&#x9;&#x9;function toggleTheme() {&#xA;&#x9;&#x9;&#x9;if (document.body.classList.contains(&#39;light&#39;)) {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;dark&#39;);&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;light&#39;);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;H.set(&#39;padTheme&#39;, newTheme);&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;function setTheme(newTheme) {&#xA;&#x9;&#x9;&#x9;document.body.classList.remove(&#39;light&#39;);&#xA;&#x9;&#x9;&#x9;document.body.classList.remove(&#39;dark&#39;);&#xA;&#x9;&#x9;&#x9;document.body.classList.add(newTheme);&#xA;&#x9;&#x9;&#x9;var btns = Array.prototype.slice.call(document.getElementById(&#39;tools&#39;).querySelectorAll(&#39;a img&#39;));&#xA;&#x9;&#x9;&#x9;if (newTheme == &#39;light&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;if (H.get(&#39;padTheme&#39;, &#39;auto&#39;) == &#39;dark&#39;){&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;for (var i=0; i&lt;btns.length; i++) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;btns[i].src = btns[i].src.replace(&#39;@2x.png&#39;, &#39;dark@2x.png&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;for (var i=0; i&lt;btns.length; i++) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;btns[i].src = btns[i].src.replace(&#39;dark@2x.png&#39;, &#39;@2x.png&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;H.set(&#39;padTheme&#39;, newTheme);&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;if (H.get(&#39;padTheme&#39;, &#39;auto&#39;) == &#39;light&#39;) {&#xA;&#x9;&#x9;&#x9;setTheme(&#39;light&#39;);&#xA;&#x9;&#x9;} else if (H.get(&#39;padTheme&#39;, &#39;auto&#39;) == &#39;dark&#39;) {&#xA;&#x9;&#x9;&#x9;setTheme(&#39;dark&#39;);&#xA;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;const isDarkMode = window.matchMedia(&#34;(prefers-color-scheme: dark)&#34;).matches&#xA;&#x9;&#x9;&#x9;if (isDarkMode) {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;dark&#39;);&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;light&#39;);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;var $writer = H.getEl(&#39;writer&#39;);&#xA;&#x9;&#x9;var $btnPublish = H.getEl(&#39;publish&#39;);&#xA;&#x9;&#x9;var $btnEraseEdit = H.getEl(&#39;edited-elsewhere&#39;);&#xA;&#x9;&#x9;var $wc = H.getEl(&#34;wc&#34;);&#xA;&#x9;&#x9;var updateWordCount = function() {&#xA;&#x9;&#x9;&#x9;var words = 0;&#xA;&#x9;&#x9;&#x9;var val = $writer.el.value.trim();&#xA;&#x9;&#x9;&#x9;if (val != &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;words = $writer.el.value.trim().replace(/\s+/gi, &#39; &#39;).split(&#39; &#39;).length;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;$wc.el.innerText = words + &#34; word&#34; + (words != 1 ? &#34;s&#34; : &#34;&#34;);&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var setButtonStates = function() {&#xA;&#x9;&#x9;&#x9;if (!canPublish) {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.className = &#39;disabled&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;return;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;if ($writer.el.value.length === 0 || (draftDoc != &#39;lastDoc&#39; &amp;&amp; $writer.el.value == origDoc)) {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.className = &#39;disabled&#39;;&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.className = &#39;&#39;;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var draftDoc = &#39;lastDoc&#39;;&#xA;&#x9;&#x9;var updatedStr = &#39;&#39;;&#xA;&#x9;&#x9;var updated = null;&#xA;&#x9;&#x9;if (updatedStr != &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;updated = new Date(updatedStr);&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var ok = H.load($writer, draftDoc, true, updated);&#xA;&#x9;&#x9;if (!ok) {&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;$btnEraseEdit.el.classList.remove(&#39;hidden&#39;);&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var defaultTimeSet = false;&#xA;&#x9;&#x9;updateWordCount();&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;var typingTimer;&#xA;&#x9;&#x9;var doneTypingInterval = 200;&#xA;&#xA;&#x9;&#x9;var posts;&#xA;&#x9;&#x9;var canPublish = true;&#xA;&#x9;&#x9;var publishing = false;&#xA;&#x9;&#x9;var justPublished = false;&#xA;&#x9;&#x9;var silenced =  false ;&#xA;&#x9;&#x9;var publish = function(content, font) {&#xA;&#x9;&#x9;&#x9;if (silenced === true) {&#xA;&#x9;&#x9;&#x9;&#x9;alert(&#34;Your account is silenced, so you can&#39;t publish or update posts.&#34;);&#xA;&#x9;&#x9;&#x9;&#x9;return;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;$btnPublish.el.children[0].textContent = &#39;more_horiz&#39;;&#xA;&#x9;&#x9;&#x9;publishing = true;&#xA;&#x9;&#x9;&#x9;var xpostTarg = H.get(&#39;crosspostTarget&#39;, &#39;[]&#39;);&#xA;&#xA;&#x9;&#x9;&#x9;var http = new XMLHttpRequest();&#xA;&#x9;&#x9;&#x9;var post = H.getTitleStrict(content);&#xA;&#xA;&#x9;&#x9;&#x9;var params = {&#xA;&#x9;&#x9;&#x9;&#x9;body: post.content,&#xA;&#x9;&#x9;&#x9;&#x9;title: post.title,&#xA;&#x9;&#x9;&#x9;&#x9;font: font&#xA;&#x9;&#x9;&#x9;};&#xA;&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;var lang = navigator.languages ? navigator.languages[0] : (navigator.language || navigator.userLanguage);&#xA;&#x9;&#x9;&#x9;lang = lang.substring(0, 2);&#xA;&#x9;&#x9;&#x9;params.lang = lang;&#xA;&#xA;&#x9;&#x9;&#x9;var url = &#34;/api/posts&#34;;&#xA;&#x9;&#x9;&#x9;var postTarget = H.get(&#39;postTarget&#39;, &#39;anonymous&#39;);&#xA;&#x9;&#x9;&#x9;if (postTarget != &#39;anonymous&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;url = &#34;/api/collections/&#34; + postTarget + &#34;/posts&#34;;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;params.crosspost = JSON.parse(xpostTarg);&#xA;&#x9;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;&#x9;http.open(&#34;POST&#34;, url, true);&#xA;&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;http.setRequestHeader(&#34;Content-type&#34;, &#34;application/json&#34;);&#xA;&#xA;&#x9;&#x9;&#x9;http.onreadystatechange = function() {&#xA;&#x9;&#x9;&#x9;&#x9;if (http.readyState == 4) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;publishing = false;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if (http.status == 200 || http.status == 201) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;data = JSON.parse(http.responseText);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;id = data.data.id;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;nextURL = &#39;/&#39;+id;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;localStorage.setItem(&#39;draft&#39;+id+&#39;-published&#39;, new Date().toISOString());&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if (postTarget != &#39;anonymous&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;  nextURL = &#39;/&#39;+postTarget+&#39;/&#39;+data.data.slug;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;editToken = data.data.token;&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;justPublished = true;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if (draftDoc != &#39;lastDoc&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;H.remove(draftDoc);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;H.set(draftDoc, &#39;&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;window.location = nextURL;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.children[0].textContent = &#39;send&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;alert(&#34;Failed to post. Please try again.&#34;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;http.send(JSON.stringify(params));&#xA;&#x9;&#x9;};&#xA;&#xA;&#x9;&#x9;setButtonStates();&#xA;&#x9;&#x9;$writer.on(&#39;keyup input&#39;, function() {&#xA;&#x9;&#x9;&#x9;setButtonStates();&#xA;&#x9;&#x9;&#x9;clearTimeout(typingTimer);&#xA;&#x9;&#x9;&#x9;typingTimer = setTimeout(doneTyping, doneTypingInterval);&#xA;&#x9;&#x9;}, false);&#xA;&#x9;&#x9;$writer.on(&#39;keydown&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;clearTimeout(typingTimer);&#xA;&#x9;&#x9;&#x9;if (e.keyCode == 13 &amp;&amp; (e.metaKey || e.ctrlKey)) {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.click();&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;});&#xA;&#x9;&#x9;$btnPublish.on(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;if (!publishing &amp;&amp; $writer.el.value) {&#xA;&#x9;&#x9;&#x9;&#x9;var content = $writer.el.value;&#xA;&#x9;&#x9;&#x9;&#x9;publish(content, selectedFont);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;});&#xA;&#x9;&#x9;H.getEl(&#39;erase-edit&#39;).on(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;H.remove(draftDoc);&#xA;&#x9;&#x9;&#x9;H.remove(draftDoc+&#39;-published&#39;);&#xA;&#x9;&#x9;&#x9;justPublished = true; &#xA;&#x9;&#x9;&#x9;location.reload();&#xA;&#x9;&#x9;});&#xA;&#xA;&#x9;&#x9;H.getEl(&#39;toggle-theme&#39;).on(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;var newTheme = &#39;light&#39;;&#xA;&#x9;&#x9;&#x9;if (document.body.className == &#39;light&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;newTheme = &#39;dark&#39;;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;toggleTheme();&#xA;&#x9;&#x9;});&#xA;&#xA;&#x9;&#x9;var targets = document.querySelectorAll(&#39;#target li.target a&#39;);&#xA;&#x9;&#x9;for (var i=0; i&lt;targets.length; i++) {&#xA;&#x9;&#x9;&#x9;targets[i].addEventListener(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;&#x9;var targetName = this.href.substring(this.href.indexOf(&#39;#&#39;)+1);&#xA;&#x9;&#x9;&#x9;&#x9;H.set(&#39;postTarget&#39;, targetName);&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;document.querySelector(&#39;#target li.target.selected&#39;).classList.remove(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;this.parentElement.classList.add(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;var newText = this.innerText.split(&#39; &#39;);&#xA;&#x9;&#x9;&#x9;&#x9;newText.shift();&#xA;&#x9;&#x9;&#x9;&#x9;document.getElementById(&#39;target-name&#39;).innerText = newText.join(&#39; &#39;);&#xA;&#x9;&#x9;&#x9;});&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var postTarget = H.get(&#39;postTarget&#39;, &#39;painttemple5&#39;);&#xA;&#x9;&#x9;if (location.hash != &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;postTarget = location.hash.substring(1);&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;location.hash = &#39;&#39;;&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var pte = document.querySelector(&#39;#target li.target#blog-&#39;+postTarget+&#39; a&#39;);&#xA;&#x9;&#x9;if (pte != null) {&#xA;&#x9;&#x9;&#x9;pte.click();&#xA;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;postTarget = &#39;anonymous&#39;;&#xA;&#x9;&#x9;&#x9;H.set(&#39;postTarget&#39;, postTarget);&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;var sansLoaded = false;&#xA;&#x9;&#x9;WebFontConfig = {&#xA;&#x9;&#x9;&#x9;custom: { families: [ &#39;Lora:400,700:latin&#39; ], urls: [ &#39;/css/fonts.css&#39; ] }&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var loadSans = function() {&#xA;&#x9;&#x9;  if (sansLoaded) return;&#xA;&#x9;&#x9;  sansLoaded = true;&#xA;&#x9;&#x9;  WebFontConfig.custom.families.push(&#39;Open+Sans:400,700:latin&#39;);&#xA;&#x9;&#x9;  try {&#xA;&#x9;&#x9;&#x9;  (function() {&#xA;&#x9;&#x9;&#x9;&#x9;var wf=document.createElement(&#39;script&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;wf.src = &#39;/js/webfont.js&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;wf.type=&#39;text/javascript&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;wf.async=&#39;true&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;var s=document.getElementsByTagName(&#39;script&#39;)[0];&#xA;&#x9;&#x9;&#x9;&#x9;s.parentNode.insertBefore(wf, s);&#xA;&#x9;&#x9;&#x9;  })();&#xA;&#x9;&#x9;  } catch (e) {}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var fonts = document.querySelectorAll(&#39;nav#font-picker a.font&#39;);&#xA;&#x9;&#x9;for (var i=0; i&lt;fonts.length; i++) {&#xA;&#x9;&#x9;&#x9;fonts[i].addEventListener(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;&#x9;selectedFont = this.href.substring(this.href.indexOf(&#39;#&#39;)+1);&#xA;&#x9;&#x9;&#x9;&#x9;$writer.el.className = selectedFont;&#xA;&#x9;&#x9;&#x9;&#x9;document.querySelector(&#39;nav#font-picker li.selected&#39;).classList.remove(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;this.parentElement.classList.add(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;H.set(&#39;padFont&#39;, selectedFont);&#xA;&#x9;&#x9;&#x9;&#x9;if (selectedFont == &#39;sans&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;loadSans();&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;});&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var selectedFont = H.get(&#39;padFont&#39;, &#39;norm&#39;);&#xA;&#x9;&#x9;var sfe = document.querySelector(&#39;nav#font-picker a.font.&#39;+selectedFont);&#xA;&#x9;&#x9;if (sfe != null) {&#xA;&#x9;&#x9;&#x9;sfe.click();&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;var doneTyping = function() {&#xA;&#x9;&#x9;&#x9;if (draftDoc == &#39;lastDoc&#39; || $writer.el.value != origDoc) {&#xA;&#x9;&#x9;&#x9;&#x9;H.save($writer, draftDoc);&#xA;&#x9;&#x9;&#x9;&#x9;if (!defaultTimeSet) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;var lastLocalPublishStr = localStorage.getItem(draftDoc+&#39;-published&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if (lastLocalPublishStr == null || lastLocalPublishStr == &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;localStorage.setItem(draftDoc+&#39;-published&#39;, updatedStr);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;defaultTimeSet = true;&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;updateWordCount();&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;window.addEventListener(&#39;beforeunload&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;if (draftDoc != &#39;lastDoc&#39; &amp;&amp; $writer.el.value == origDoc) {&#xA;&#x9;&#x9;&#x9;&#x9;H.remove(draftDoc);&#xA;&#x9;&#x9;&#x9;&#x9;H.remove(draftDoc+&#39;-published&#39;);&#xA;&#x9;&#x9;&#x9;} else if (!justPublished) {&#xA;&#x9;&#x9;&#x9;&#x9;doneTyping();&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;});&#xA;&#xA;&#x9;&#x9;try {&#xA;&#x9;&#x9;  (function() {&#xA;&#x9;&#x9;&#x9;var wf=document.createElement(&#39;script&#39;);&#xA;&#x9;&#x9;&#x9;wf.src = &#39;/js/webfont.js&#39;;&#xA;&#x9;&#x9;&#x9;wf.type=&#39;text/javascript&#39;;&#xA;&#x9;&#x9;&#x9;wf.async=&#39;true&#39;;&#xA;&#x9;&#x9;&#x9;var s=document.getElementsByTagName(&#39;script&#39;)[0];&#xA;&#x9;&#x9;&#x9;s.parentNode.insertBefore(wf, s);&#xA;&#x9;&#x9;  })();&#xA;&#x9;&#x9;} catch (e) {&#xA;&#x9;&#x9;  &#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;/script&#xA;&#x9;&#x9;link href=&#34;/css/icons.css&#34; rel=&#34;stylesheet&#34;&#xA;&#x9;/body&#xA;/html]]&gt;</description>
      <content:encoded><![CDATA[<p>&lt;!DOCTYPE HTML&gt;

    </p>

<p>        </p>

<p>        </p>

<p>        </p>

<p>        
    
    </p>

<p>        <div id="overlay" id="overlay"></div></p>

<p>        </p>

<p>        <div class="alert success hidden" id="edited-elsewhere" id="edited-elsewhere">This post has been updated elsewhere since you last published! <a id="erase-edit" id="erase-edit">Delete draft and reload</a>.</div></p>

<p>        <header id="tools" id="tools">
            <div id="clip" id="clip">
                <h1><a href="/me/c/" title="View blogs"><img class="ic-24dp" src="/img/ic_blogs_dark@2x.png"/></a></h1>
                <ul>                        <li class="has-submenu"><a id="publish-to" id="publish-to"><span id="target-name" id="target-name">Draft</span> <img class="ic-18dp" src="/img/ic_down_arrow_dark@2x.png"/></a>
                        <ul>                            <li class="menu-heading">Publish to...</li></p>

<p>                                <li class="target selected" id="blog-painttemple5" id="blog-painttemple5"><a href="#painttemple5"><i class="material-icons md-18">public</i> painttemple5</a></li></p>

<p>                            <li class="target" id="blog-anonymous" id="blog-anonymous"><a href="#anonymous"><i class="material-icons md-18">description</i> <em>Draft</em></a></li>
                            <li id="user-separator" id="user-separator" class="separator"><hr/></li></p>

<p>                            <li><a href="/me/c/"><i class="material-icons md-18">library_books</i> View Blogs</a></li></p>

<p>                            <li><a href="/me/posts/"><i class="material-icons md-18">view<em>list</i> View Drafts</a></li>
                            <li><a href="/me/logout"><i class="material-icons md-18">power</em>settings<em>new</i>  Log out</a></li>
                        </ul>
                    </li>
                </ul>
                <ul>                        <li class="has-submenu"><a id="">&lt;img class=“ic-24dp” src=“/img/ic</em>font<em>dark@2x.png” /&gt; &lt;img class=“ic-18dp” src=“/img/ic</em>down<em>arrow</em>dark@2x.png” /&gt;</a>
                        <ul style="text-align: center">
                            <li class="menu-heading">Font</li>
                            <li class="selected"><a class="font norm" href="#norm">Serif</a></li>
                            <li><a class="font sans" href="#sans">Sans-serif</a></li>
                            <li><a class="font wrap" href="#wrap">Monospace</a></li>
                        </ul>
                    </li>
                </ul>
                <span id="wc" id="wc" class="hidden if-room room-4">0 words</span>
            </div>
            
            <div id="belt" id="belt"></p>

<p>                <div class="tool hidden if-room room-2"><a href="#theme" title="Toggle theme" id="toggle-theme" id="toggle-theme"><img class="ic-24dp" src="/img/ic_brightness_dark@2x.png"/></a></div>
                <div class="tool if-room room-1"><a href="/me/posts/" title="View posts" id="view-posts" id="view-posts"><img class="ic-24dp" src="/img/ic_list_dark@2x.png"/></a></div>
                <div class="tool"><a href="#publish" title="Publish" id="publish" id="publish"><img class="ic-24dp" src="/img/ic_send_dark@2x.png"/></a></div>
            </div>
        </header></p>

<p>        
        
        
        
    
</p>
]]></content:encoded>
      <guid>//painttemple5.bravejournal.net/an-adventure-back-in-time-the-conversations-people-had-about-robot-vacuum</guid>
      <pubDate>Thu, 19 Dec 2024 12:16:19 +0000</pubDate>
    </item>
    <item>
      <title>Are You Getting The Most From Your Best Rated Robot Vacuum?</title>
      <link>//painttemple5.bravejournal.net/are-you-getting-the-most-from-your-best-rated-robot-vacuum</link>
      <description>&lt;![CDATA[!DOCTYPE HTML&#xA;html&#xA;&#x9;head&#xA;&#xA;&#x9;&#x9;titleNew Post &amp;mdash; bravejournal.net/title&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;/css/write.css&#34; /&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34; /&#xA;&#xA;&#x9;&#x9;meta name=&#34;google&#34; value=&#34;notranslate&#34;&#xA;&#x9;/head&#xA;&#x9;body id=&#34;pad&#34; class=&#34;light&#34;&#xA;&#xA;&#x9;&#x9;div id=&#34;overlay&#34;/div&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;textarea id=&#34;writer&#34; placeholder=&#34;Write...&#34; class=&#34;norm&#34; autofocus/textarea&#xA;&#xA;&#x9;&#x9;div class=&#34;alert success hidden&#34; id=&#34;edited-elsewhere&#34;This post has been updated elsewhere since you last published! a href=&#34;#&#34; id=&#34;erase-edit&#34;Delete draft and reload/a./div&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;header id=&#34;tools&#34;&#xA;&#x9;&#x9;&#x9;div id=&#34;clip&#34;&#xA;&#x9;&#x9;&#x9;&#x9;h1a href=&#34;/me/c/&#34; title=&#34;View blogs&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icblogsdark@2x.png&#34; //a/h1&#xA;&#x9;&#x9;&#x9;&#x9;nav id=&#34;target&#34; ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;has-submenu&#34;a href=&#34;#&#34; id=&#34;publish-to&#34; onclick=&#34;return false&#34;span id=&#34;target-name&#34;Draft/span img class=&#34;ic-18dp&#34; src=&#34;/img/icdownarrowdark@2x.png&#34; //a&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;menu-heading&#34;Publish to.../li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;target selected&#34; id=&#34;blog-painttemple5&#34;a href=&#34;#painttemple5&#34;i class=&#34;material-icons md-18&#34;public/i painttemple5/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;target&#34; id=&#34;blog-anonymous&#34;a href=&#34;#anonymous&#34;i class=&#34;material-icons md-18&#34;description/i emDraft/em/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li id=&#34;user-separator&#34; class=&#34;separator&#34;hr //li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia href=&#34;/me/c/&#34;i class=&#34;material-icons md-18&#34;librarybooks/i View Blogs/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia href=&#34;/me/posts/&#34;i class=&#34;material-icons md-18&#34;viewlist/i View Drafts/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia href=&#34;/me/logout&#34;i class=&#34;material-icons md-18&#34;powersettingsnew/i  Log out/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;/ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;/li&#xA;&#x9;&#x9;&#x9;&#x9;/ul/nav&#xA;&#x9;&#x9;&#x9;&#x9;nav id=&#34;font-picker&#34; class=&#34;if-room room-3 hidden&#34; style=&#34;margin-left:-1em&#34;ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;has-submenu&#34;a href=&#34;#&#34; id=&#34;&#34; onclick=&#34;return false&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icfontdark@2x.png&#34; / img class=&#34;ic-18dp&#34; src=&#34;/img/icdownarrowdark@2x.png&#34; //a&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;ul style=&#34;text-align: center&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;menu-heading&#34;Font/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;selected&#34;a class=&#34;font norm&#34; href=&#34;#norm&#34;Serif/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia class=&#34;font sans&#34; href=&#34;#sans&#34;Sans-serif/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia class=&#34;font wrap&#34; href=&#34;#wrap&#34;Monospace/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;/ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;/li&#xA;&#x9;&#x9;&#x9;&#x9;/ul/nav&#xA;&#x9;&#x9;&#x9;&#x9;span id=&#34;wc&#34; class=&#34;hidden if-room room-4&#34;0 words/span&#xA;&#x9;&#x9;&#x9;/div&#xA;&#x9;&#x9;&#x9;noscript style=&#34;margin-left: 2em;&#34;strongNOTE/strong: for now, you&#39;ll need Javascript enabled to post./noscript&#xA;&#x9;&#x9;&#x9;div id=&#34;belt&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;div class=&#34;tool hidden if-room room-2&#34;a href=&#34;#theme&#34; title=&#34;Toggle theme&#34; id=&#34;toggle-theme&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icbrightnessdark@2x.png&#34; //a/div&#xA;&#x9;&#x9;&#x9;&#x9;div class=&#34;tool if-room room-1&#34;a href=&#34;/me/posts/&#34; title=&#34;View posts&#34; id=&#34;view-posts&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/iclistdark@2x.png&#34; //a/div&#xA;&#x9;&#x9;&#x9;&#x9;div class=&#34;tool&#34;a href=&#34;#publish&#34; title=&#34;Publish&#34; id=&#34;publish&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icsenddark@2x.png&#34; //a/div&#xA;&#x9;&#x9;&#x9;/div&#xA;&#x9;&#x9;/header&#xA;&#xA;&#x9;&#x9;script src=&#34;/js/h.js&#34;/script&#xA;&#x9;&#x9;script type=&#34;text/javascript&#34; src=&#34;/js/menu.js&#34;/script&#xA;&#x9;&#x9;script&#xA;&#x9;&#x9;function toggleTheme() {&#xA;&#x9;&#x9;&#x9;if (document.body.classList.contains(&#39;light&#39;)) {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;dark&#39;);&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;light&#39;);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;H.set(&#39;padTheme&#39;, newTheme);&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;function setTheme(newTheme) {&#xA;&#x9;&#x9;&#x9;document.body.classList.remove(&#39;light&#39;);&#xA;&#x9;&#x9;&#x9;document.body.classList.remove(&#39;dark&#39;);&#xA;&#x9;&#x9;&#x9;document.body.classList.add(newTheme);&#xA;&#x9;&#x9;&#x9;var btns = Array.prototype.slice.call(document.getElementById(&#39;tools&#39;).querySelectorAll(&#39;a img&#39;));&#xA;&#x9;&#x9;&#x9;if (newTheme == &#39;light&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;if (H.get(&#39;padTheme&#39;, &#39;auto&#39;) == &#39;dark&#39;){&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;for (var i=0; i&lt;btns.length; i++) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;btns[i].src = btns[i].src.replace(&#39;@2x.png&#39;, &#39;dark@2x.png&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;for (var i=0; i&lt;btns.length; i++) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;btns[i].src = btns[i].src.replace(&#39;dark@2x.png&#39;, &#39;@2x.png&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;H.set(&#39;padTheme&#39;, newTheme);&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;if (H.get(&#39;padTheme&#39;, &#39;auto&#39;) == &#39;light&#39;) {&#xA;&#x9;&#x9;&#x9;setTheme(&#39;light&#39;);&#xA;&#x9;&#x9;} else if (H.get(&#39;padTheme&#39;, &#39;auto&#39;) == &#39;dark&#39;) {&#xA;&#x9;&#x9;&#x9;setTheme(&#39;dark&#39;);&#xA;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;const isDarkMode = window.matchMedia(&#34;(prefers-color-scheme: dark)&#34;).matches&#xA;&#x9;&#x9;&#x9;if (isDarkMode) {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;dark&#39;);&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;light&#39;);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;var $writer = H.getEl(&#39;writer&#39;);&#xA;&#x9;&#x9;var $btnPublish = H.getEl(&#39;publish&#39;);&#xA;&#x9;&#x9;var $btnEraseEdit = H.getEl(&#39;edited-elsewhere&#39;);&#xA;&#x9;&#x9;var $wc = H.getEl(&#34;wc&#34;);&#xA;&#x9;&#x9;var updateWordCount = function() {&#xA;&#x9;&#x9;&#x9;var words = 0;&#xA;&#x9;&#x9;&#x9;var val = $writer.el.value.trim();&#xA;&#x9;&#x9;&#x9;if (val != &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;words = $writer.el.value.trim().replace(/\s+/gi, &#39; &#39;).split(&#39; &#39;).length;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;$wc.el.innerText = words + &#34; word&#34; + (words != 1 ? &#34;s&#34; : &#34;&#34;);&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var setButtonStates = function() {&#xA;&#x9;&#x9;&#x9;if (!canPublish) {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.className = &#39;disabled&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;return;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;if ($writer.el.value.length === 0 || (draftDoc != &#39;lastDoc&#39; &amp;&amp; $writer.el.value == origDoc)) {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.className = &#39;disabled&#39;;&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.className = &#39;&#39;;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var draftDoc = &#39;lastDoc&#39;;&#xA;&#x9;&#x9;var updatedStr = &#39;&#39;;&#xA;&#x9;&#x9;var updated = null;&#xA;&#x9;&#x9;if (updatedStr != &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;updated = new Date(updatedStr);&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var ok = H.load($writer, draftDoc, true, updated);&#xA;&#x9;&#x9;if (!ok) {&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;$btnEraseEdit.el.classList.remove(&#39;hidden&#39;);&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var defaultTimeSet = false;&#xA;&#x9;&#x9;updateWordCount();&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;var typingTimer;&#xA;&#x9;&#x9;var doneTypingInterval = 200;&#xA;&#xA;&#x9;&#x9;var posts;&#xA;&#x9;&#x9;var canPublish = true;&#xA;&#x9;&#x9;var publishing = false;&#xA;&#x9;&#x9;var justPublished = false;&#xA;&#x9;&#x9;var silenced =  false ;&#xA;&#x9;&#x9;var publish = function(content, font) {&#xA;&#x9;&#x9;&#x9;if (silenced === true) {&#xA;&#x9;&#x9;&#x9;&#x9;alert(&#34;Your account is silenced, so you can&#39;t publish or update posts.&#34;);&#xA;&#x9;&#x9;&#x9;&#x9;return;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;$btnPublish.el.children[0].textContent = &#39;more_horiz&#39;;&#xA;&#x9;&#x9;&#x9;publishing = true;&#xA;&#x9;&#x9;&#x9;var xpostTarg = H.get(&#39;crosspostTarget&#39;, &#39;[]&#39;);&#xA;&#xA;&#x9;&#x9;&#x9;var http = new XMLHttpRequest();&#xA;&#x9;&#x9;&#x9;var post = H.getTitleStrict(content);&#xA;&#xA;&#x9;&#x9;&#x9;var params = {&#xA;&#x9;&#x9;&#x9;&#x9;body: post.content,&#xA;&#x9;&#x9;&#x9;&#x9;title: post.title,&#xA;&#x9;&#x9;&#x9;&#x9;font: font&#xA;&#x9;&#x9;&#x9;};&#xA;&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;var lang = navigator.languages ? navigator.languages[0] : (navigator.language || navigator.userLanguage);&#xA;&#x9;&#x9;&#x9;lang = lang.substring(0, 2);&#xA;&#x9;&#x9;&#x9;params.lang = lang;&#xA;&#xA;&#x9;&#x9;&#x9;var url = &#34;/api/posts&#34;;&#xA;&#x9;&#x9;&#x9;var postTarget = H.get(&#39;postTarget&#39;, &#39;anonymous&#39;);&#xA;&#x9;&#x9;&#x9;if (postTarget != &#39;anonymous&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;url = &#34;/api/collections/&#34; + postTarget + &#34;/posts&#34;;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;params.crosspost = JSON.parse(xpostTarg);&#xA;&#x9;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;&#x9;http.open(&#34;POST&#34;, url, true);&#xA;&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;http.setRequestHeader(&#34;Content-type&#34;, &#34;application/json&#34;);&#xA;&#xA;&#x9;&#x9;&#x9;http.onreadystatechange = function() {&#xA;&#x9;&#x9;&#x9;&#x9;if (http.readyState == 4) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;publishing = false;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if (http.status == 200 || http.status == 201) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;data = JSON.parse(http.responseText);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;id = data.data.id;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;nextURL = &#39;/&#39;+id;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;localStorage.setItem(&#39;draft&#39;+id+&#39;-published&#39;, new Date().toISOString());&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if (postTarget != &#39;anonymous&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;  nextURL = &#39;/&#39;+postTarget+&#39;/&#39;+data.data.slug;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;editToken = data.data.token;&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;justPublished = true;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if (draftDoc != &#39;lastDoc&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;H.remove(draftDoc);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;H.set(draftDoc, &#39;&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;window.location = nextURL;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.children[0].textContent = &#39;send&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;alert(&#34;Failed to post. Please try again.&#34;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;http.send(JSON.stringify(params));&#xA;&#x9;&#x9;};&#xA;&#xA;&#x9;&#x9;setButtonStates();&#xA;&#x9;&#x9;$writer.on(&#39;keyup input&#39;, function() {&#xA;&#x9;&#x9;&#x9;setButtonStates();&#xA;&#x9;&#x9;&#x9;clearTimeout(typingTimer);&#xA;&#x9;&#x9;&#x9;typingTimer = setTimeout(doneTyping, doneTypingInterval);&#xA;&#x9;&#x9;}, false);&#xA;&#x9;&#x9;$writer.on(&#39;keydown&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;clearTimeout(typingTimer);&#xA;&#x9;&#x9;&#x9;if (e.keyCode == 13 &amp;&amp; (e.metaKey || e.ctrlKey)) {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.click();&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;});&#xA;&#x9;&#x9;$btnPublish.on(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;if (!publishing &amp;&amp; $writer.el.value) {&#xA;&#x9;&#x9;&#x9;&#x9;var content = $writer.el.value;&#xA;&#x9;&#x9;&#x9;&#x9;publish(content, selectedFont);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;});&#xA;&#x9;&#x9;H.getEl(&#39;erase-edit&#39;).on(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;H.remove(draftDoc);&#xA;&#x9;&#x9;&#x9;H.remove(draftDoc+&#39;-published&#39;);&#xA;&#x9;&#x9;&#x9;justPublished = true; &#xA;&#x9;&#x9;&#x9;location.reload();&#xA;&#x9;&#x9;});&#xA;&#xA;&#x9;&#x9;H.getEl(&#39;toggle-theme&#39;).on(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;var newTheme = &#39;light&#39;;&#xA;&#x9;&#x9;&#x9;if (document.body.className == &#39;light&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;newTheme = &#39;dark&#39;;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;toggleTheme();&#xA;&#x9;&#x9;});&#xA;&#xA;&#x9;&#x9;var targets = document.querySelectorAll(&#39;#target li.target a&#39;);&#xA;&#x9;&#x9;for (var i=0; i&lt;targets.length; i++) {&#xA;&#x9;&#x9;&#x9;targets[i].addEventListener(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;&#x9;var targetName = this.href.substring(this.href.indexOf(&#39;#&#39;)+1);&#xA;&#x9;&#x9;&#x9;&#x9;H.set(&#39;postTarget&#39;, targetName);&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;document.querySelector(&#39;#target li.target.selected&#39;).classList.remove(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;this.parentElement.classList.add(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;var newText = this.innerText.split(&#39; &#39;);&#xA;&#x9;&#x9;&#x9;&#x9;newText.shift();&#xA;&#x9;&#x9;&#x9;&#x9;document.getElementById(&#39;target-name&#39;).innerText = newText.join(&#39; &#39;);&#xA;&#x9;&#x9;&#x9;});&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var postTarget = H.get(&#39;postTarget&#39;, &#39;painttemple5&#39;);&#xA;&#x9;&#x9;if (location.hash != &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;postTarget = location.hash.substring(1);&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;location.hash = &#39;&#39;;&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var pte = document.querySelector(&#39;#target li.target#blog-&#39;+postTarget+&#39; a&#39;);&#xA;&#x9;&#x9;if (pte != null) {&#xA;&#x9;&#x9;&#x9;pte.click();&#xA;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;postTarget = &#39;anonymous&#39;;&#xA;&#x9;&#x9;&#x9;H.set(&#39;postTarget&#39;, postTarget);&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;var sansLoaded = false;&#xA;&#x9;&#x9;WebFontConfig = {&#xA;&#x9;&#x9;&#x9;custom: { families: [ &#39;Lora:400,700:latin&#39; ], urls: [ &#39;/css/fonts.css&#39; ] }&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var loadSans = function() {&#xA;&#x9;&#x9;  if (sansLoaded) return;&#xA;&#x9;&#x9;  sansLoaded = true;&#xA;&#x9;&#x9;  WebFontConfig.custom.families.push(&#39;Open+Sans:400,700:latin&#39;);&#xA;&#x9;&#x9;  try {&#xA;&#x9;&#x9;&#x9;  (function() {&#xA;&#x9;&#x9;&#x9;&#x9;var wf=document.createElement(&#39;script&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;wf.src = &#39;/js/webfont.js&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;wf.type=&#39;text/javascript&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;wf.async=&#39;true&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;var s=document.getElementsByTagName(&#39;script&#39;)[0];&#xA;&#x9;&#x9;&#x9;&#x9;s.parentNode.insertBefore(wf, s);&#xA;&#x9;&#x9;&#x9;  })();&#xA;&#x9;&#x9;  } catch (e) {}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var fonts = document.querySelectorAll(&#39;nav#font-picker a.font&#39;);&#xA;&#x9;&#x9;for (var i=0; i&lt;fonts.length; i++) {&#xA;&#x9;&#x9;&#x9;fonts[i].addEventListener(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;&#x9;selectedFont = this.href.substring(this.href.indexOf(&#39;#&#39;)+1);&#xA;&#x9;&#x9;&#x9;&#x9;$writer.el.className = selectedFont;&#xA;&#x9;&#x9;&#x9;&#x9;document.querySelector(&#39;nav#font-picker li.selected&#39;).classList.remove(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;this.parentElement.classList.add(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;H.set(&#39;padFont&#39;, selectedFont);&#xA;&#x9;&#x9;&#x9;&#x9;if (selectedFont == &#39;sans&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;loadSans();&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;});&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var selectedFont = H.get(&#39;padFont&#39;, &#39;norm&#39;);&#xA;&#x9;&#x9;var sfe = document.querySelector(&#39;nav#font-picker a.font.&#39;+selectedFont);&#xA;&#x9;&#x9;if (sfe != null) {&#xA;&#x9;&#x9;&#x9;sfe.click();&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;var doneTyping = function() {&#xA;&#x9;&#x9;&#x9;if (draftDoc == &#39;lastDoc&#39; || $writer.el.value != origDoc) {&#xA;&#x9;&#x9;&#x9;&#x9;H.save($writer, draftDoc);&#xA;&#x9;&#x9;&#x9;&#x9;if (!defaultTimeSet) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;var lastLocalPublishStr = localStorage.getItem(draftDoc+&#39;-published&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if (lastLocalPublishStr == null || lastLocalPublishStr == &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;localStorage.setItem(draftDoc+&#39;-published&#39;, updatedStr);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;defaultTimeSet = true;&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;updateWordCount();&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;window.addEventListener(&#39;beforeunload&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;if (draftDoc != &#39;lastDoc&#39; &amp;&amp; $writer.el.value == origDoc) {&#xA;&#x9;&#x9;&#x9;&#x9;H.remove(draftDoc);&#xA;&#x9;&#x9;&#x9;&#x9;H.remove(draftDoc+&#39;-published&#39;);&#xA;&#x9;&#x9;&#x9;} else if (!justPublished) {&#xA;&#x9;&#x9;&#x9;&#x9;doneTyping();&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;});&#xA;&#xA;&#x9;&#x9;try {&#xA;&#x9;&#x9;  (function() {&#xA;&#x9;&#x9;&#x9;var wf=document.createElement(&#39;script&#39;);&#xA;&#x9;&#x9;&#x9;wf.src = &#39;/js/webfont.js&#39;;&#xA;&#x9;&#x9;&#x9;wf.type=&#39;text/javascript&#39;;&#xA;&#x9;&#x9;&#x9;wf.async=&#39;true&#39;;&#xA;&#x9;&#x9;&#x9;var s=document.getElementsByTagName(&#39;script&#39;)[0];&#xA;&#x9;&#x9;&#x9;s.parentNode.insertBefore(wf, s);&#xA;&#x9;&#x9;  })();&#xA;&#x9;&#x9;} catch (e) {&#xA;&#x9;&#x9;  &#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;/script&#xA;&#x9;&#x9;link href=&#34;/css/icons.css&#34; rel=&#34;stylesheet&#34;&#xA;&#x9;/body&#xA;/html]]&gt;</description>
      <content:encoded><![CDATA[<p>&lt;!DOCTYPE HTML&gt;

    </p>

<p>        </p>

<p>        </p>

<p>        </p>

<p>        
    
    </p>

<p>        <div id="overlay" id="overlay"></div></p>

<p>        </p>

<p>        <div class="alert success hidden" id="edited-elsewhere" id="edited-elsewhere">This post has been updated elsewhere since you last published! <a id="erase-edit" id="erase-edit">Delete draft and reload</a>.</div></p>

<p>        <header id="tools" id="tools">
            <div id="clip" id="clip">
                <h1><a href="/me/c/" title="View blogs"><img class="ic-24dp" src="/img/ic_blogs_dark@2x.png"/></a></h1>
                <ul>                        <li class="has-submenu"><a id="publish-to" id="publish-to"><span id="target-name" id="target-name">Draft</span> <img class="ic-18dp" src="/img/ic_down_arrow_dark@2x.png"/></a>
                        <ul>                            <li class="menu-heading">Publish to...</li></p>

<p>                                <li class="target selected" id="blog-painttemple5" id="blog-painttemple5"><a href="#painttemple5"><i class="material-icons md-18">public</i> painttemple5</a></li></p>

<p>                            <li class="target" id="blog-anonymous" id="blog-anonymous"><a href="#anonymous"><i class="material-icons md-18">description</i> <em>Draft</em></a></li>
                            <li id="user-separator" id="user-separator" class="separator"><hr/></li></p>

<p>                            <li><a href="/me/c/"><i class="material-icons md-18">library_books</i> View Blogs</a></li></p>

<p>                            <li><a href="/me/posts/"><i class="material-icons md-18">view<em>list</i> View Drafts</a></li>
                            <li><a href="/me/logout"><i class="material-icons md-18">power</em>settings<em>new</i>  Log out</a></li>
                        </ul>
                    </li>
                </ul>
                <ul>                        <li class="has-submenu"><a id="">&lt;img class=“ic-24dp” src=“/img/ic</em>font<em>dark@2x.png” /&gt; &lt;img class=“ic-18dp” src=“/img/ic</em>down<em>arrow</em>dark@2x.png” /&gt;</a>
                        <ul style="text-align: center">
                            <li class="menu-heading">Font</li>
                            <li class="selected"><a class="font norm" href="#norm">Serif</a></li>
                            <li><a class="font sans" href="#sans">Sans-serif</a></li>
                            <li><a class="font wrap" href="#wrap">Monospace</a></li>
                        </ul>
                    </li>
                </ul>
                <span id="wc" id="wc" class="hidden if-room room-4">0 words</span>
            </div>
            
            <div id="belt" id="belt"></p>

<p>                <div class="tool hidden if-room room-2"><a href="#theme" title="Toggle theme" id="toggle-theme" id="toggle-theme"><img class="ic-24dp" src="/img/ic_brightness_dark@2x.png"/></a></div>
                <div class="tool if-room room-1"><a href="/me/posts/" title="View posts" id="view-posts" id="view-posts"><img class="ic-24dp" src="/img/ic_list_dark@2x.png"/></a></div>
                <div class="tool"><a href="#publish" title="Publish" id="publish" id="publish"><img class="ic-24dp" src="/img/ic_send_dark@2x.png"/></a></div>
            </div>
        </header></p>

<p>        
        
        
        
    
</p>
]]></content:encoded>
      <guid>//painttemple5.bravejournal.net/are-you-getting-the-most-from-your-best-rated-robot-vacuum</guid>
      <pubDate>Thu, 19 Dec 2024 12:16:03 +0000</pubDate>
    </item>
    <item>
      <title>The Ultimate Glossary Of Terms About Robot Vacuums Best</title>
      <link>//painttemple5.bravejournal.net/the-ultimate-glossary-of-terms-about-robot-vacuums-best</link>
      <description>&lt;![CDATA[The Best Robot Vacuums The top robot vacuums are able remove fine dust particles as well as other debris that is found on hard floors or carpets with a low pile. They also excel in removing larger debris like metal screws, Orzo noodles and even pet hair. Select a model with a large bin and self-emptying docks to reduce maintenance time. The majority of models can be used with apps and digital assistants to enable hands-free operation.  They&#39;re great to play with If you&#39;re looking for a fun way to clean your home or just want to have a little fun, robot vacuums can be a great addition to your daily life. They&#39;re much more efficient than traditional vacuums and can clean many different surfaces. They also have a range of innovative features, such as the ability to connect to your smartphone, set up cleaning schedules, and even manage them remotely. This makes them an excellent option for families and those who are always on the go. Robot vacuums are a fantastic technology however they can be expensive and require more maintenance than standard vacuums. They also come with a an elongated warranty compared to other household appliances. It is essential to conduct your research prior to buying one. The best robot vacuums are able to be used on all types of flooring including bare floors and carpets. They can even move around furniture, unlike traditional vacuums. They can also sense and navigate stairs. They come with a low-profile to clean under furniture and an LED light circle that helps them see in dim light situations. They have sensors that can detect obstacles and stairs to ensure smooth and safe navigation. Robot vacuums offer a range of mopping options. They can remove stains and spills, get rid of fine dust, and get rid of pet hair. Some models combine mopping and vacuuming while others are more focused on just one. Some models can even automatically switch between cleaning modes depending on the type of surface. Take into consideration the size of your home when selecting a robot vacuum. A larger model will have a bigger area of coverage, whereas a smaller one is better for tight spaces. It is also essential to think about your requirements and budget before purchasing a model. CHOICE community member Nat explains that while robot vacuums can be great fun however, they&#39;re not 100% reliable. They can become stuck in furniture, door thresholds and snag on items like stray shoelaces or pet toys. They can also be caught in the vacuum and cause damage. They&#39;re more efficient Robot vacuums are equipped with motors, sensors, and intelligent programming that allow them to navigate, map and clean your floors autonomously. They&#39;re often more efficient than conventional vacuum cleaners, requiring less user intervention and offering an unrestricted cleaning experience. Some models are compatible with smart home systems and can respond to voice commands. This makes them more convenient to use. Robot vacuums have their limitations. They can&#39;t be used to clean all surfaces, and they aren&#39;t always effective on particular types of debris, like pet hair. They also tend to drain their batteries faster, and require frequent recharges and regular maintenance. Based on budget robot vacuum choose, some robots are better at certain tasks than others, and it is important to know their strengths and weaknesses before purchasing. Modern robots are equipped with sensors that allow them to navigate safely around furniture, stairs, and other dangers. They can also make a digital floor map to ensure that each inch is thoroughly cleaned without having to repeat areas. Certain models also come with cameras to enable more precise obstacle avoidance. In addition to their sophisticated technology for navigation, robot vacuums are known for getting stuck on or tangled in things like shoelaces, socks and pet toys, which could cause them to stop working completely. Nat, one of the CHOICE community members advises you to &#34;vacuum check&#34; your home prior to using the robot. In addition to that an uncharged robot could take up to two hours to finish its job and the bin it collects its dirt in is generally smaller than a typical vacuum cleaner&#39;s bin, which means it has to be emptied more frequently. Some robotic vacuums aren&#39;t able to be stopped or paused, so you&#39;ll need to use the cord to vacuum in the places where the robot won&#39;t. Plus, if you get a high-end model equipped with a camera, you should be aware that it&#39;s capturing data about your home and could give it to third-party companies, unless you specifically switch off that feature. They&#39;re cheaper than traditional vacuums. While robot vacuums may appear to be a costly investment however, they can save money in the long run. They can save you money by avoiding the expense of hiring a cleaning firm and are more quiet than conventional vacuum cleaners. They are also environmentally friendly, and don&#39;t require bags. They can be programmed to clean when you&#39;re away from your home. This is perfect for people suffering from back or joint pain. However, it&#39;s important to know that robot vacuums aren&#39;t as effective as regular vacuum cleaners at cleaning specific areas of your home. They can be caught under furniture, on thresholds of doors and in thick rugs. They can also be caught on cords and shoelaces. It is important to keep your device clean and empty the dust bin. Sensors aid robots in mapping their surroundings and determine which path to take. This helps them avoid obstructions and ensure that they stay clear from stairs. Certain robots come with features that allow you to set up no-go zones in areas that the device shouldn&#39;t go. These features make robots a good option for households with pets, or for people who don&#39;t have the time to clean regularly. Despite all of their smarts they can be difficult to manage. They can easily get stuck under or on furniture and are often required to be restarted when they get snagged on something. They may also have a hard time reaching high cabinets, bay windows or desks. This makes them less suitable for multi-story houses. Robot vacuums are more difficult to maintain than traditional vacuums. They might not be right for everyone. They have smaller dustbins, some of which are less than 400ml. They need to be emptied often or else the robot will drag dirt across your floors. Also, you&#39;ll need to change the filters regularly. Additionally, it&#39;s important to know that many manufacturers of robot vacuums collect data about their customers. This data could be sold to third party. Some people may find this a problem particularly those who are concerned about privacy concerns. It is important to review the policies of the manufacturer and determine whether they&#39;re appropriate for you. They&#39;re easier to clean Robot vacuum cleaners are more simple to use than traditional vacuum cleaners, however they don&#39;t always pick up all dirt. This is particularly the case if you live a large house or apartment with carpets, as robots can often struggle to remove dirt and debris that are embedded within rugs. Some models also have motors that are less powerful than standard vacuums and aren&#39;t able to handle dust or other heavy materials. If your primary concern is keeping your floors in good condition and looking clean, then a robotic vacuum cleaner is an ideal choice. These machines are able to reach areas that are difficult to clean using a mop or brush that is long-handled, such as under beds and tables. This can help you prevent the accumulation of dust and allergens which can trigger health issues such as asthma and allergies. Another benefit of these robotic vacuums is that they typically have smaller batteries than traditional vacuums. This allows them to finish their cleaning in a lesser amount of time. They also have a smart system that tracks their progress, and then resumes automatically where they started when they are required to recharge. This can make your home appear more tidy and organized without much effort. In addition, robots can be fitted with a variety of settings and features that can be customized to meet your specific cleaning needs. For example, you can program the machine to clean only specific rooms or areas of your home, and also schedule a regular cleaning. You can also choose an option that will automatically return to the dock for charging when its bin is full. This can be a great option for those with limited mobility who need to cut down on the amount of manual bending and stooping they must do when vacuuming. Robotic vacuum cleaners are a fantastic alternative for homes with a variety of. They are especially useful in homes with one level, in which they can move around smooth surfaces. They are also a great option to conventional vacuuming for those who have mobility issues or health problems that make it hard to bend over or mop. In addition, they could also save you money over the long term by reducing the amount of times you need to purchase cleaning products.]]&gt;</description>
      <content:encoded><![CDATA[<p>The Best Robot Vacuums The top robot vacuums are able remove fine dust particles as well as other debris that is found on hard floors or carpets with a low pile. They also excel in removing larger debris like metal screws, Orzo noodles and even pet hair. Select a model with a large bin and self-emptying docks to reduce maintenance time. The majority of models can be used with apps and digital assistants to enable hands-free operation. <img src="https://cdn.freshstore.cloud/offer/images/15131/693/c/ecovacs-deebot-n10-robot-vacuum-cleaner-with-mop-4300pa-auto-empty-station-300-min-4300-sqft-truemapping-2-0-dtof-laser-navigation-carpet-detection-precise-customized-cleaning-no-go-zones-693-small.jpg" alt=""> They&#39;re great to play with If you&#39;re looking for a fun way to clean your home or just want to have a little fun, robot vacuums can be a great addition to your daily life. They&#39;re much more efficient than traditional vacuums and can clean many different surfaces. They also have a range of innovative features, such as the ability to connect to your smartphone, set up cleaning schedules, and even manage them remotely. This makes them an excellent option for families and those who are always on the go. Robot vacuums are a fantastic technology however they can be expensive and require more maintenance than standard vacuums. They also come with a an elongated warranty compared to other household appliances. It is essential to conduct your research prior to buying one. The best robot vacuums are able to be used on all types of flooring including bare floors and carpets. They can even move around furniture, unlike traditional vacuums. They can also sense and navigate stairs. They come with a low-profile to clean under furniture and an LED light circle that helps them see in dim light situations. They have sensors that can detect obstacles and stairs to ensure smooth and safe navigation. Robot vacuums offer a range of mopping options. They can remove stains and spills, get rid of fine dust, and get rid of pet hair. Some models combine mopping and vacuuming while others are more focused on just one. Some models can even automatically switch between cleaning modes depending on the type of surface. Take into consideration the size of your home when selecting a robot vacuum. A larger model will have a bigger area of coverage, whereas a smaller one is better for tight spaces. It is also essential to think about your requirements and budget before purchasing a model. CHOICE community member Nat explains that while robot vacuums can be great fun however, they&#39;re not 100% reliable. They can become stuck in furniture, door thresholds and snag on items like stray shoelaces or pet toys. They can also be caught in the vacuum and cause damage. They&#39;re more efficient Robot vacuums are equipped with motors, sensors, and intelligent programming that allow them to navigate, map and clean your floors autonomously. They&#39;re often more efficient than conventional vacuum cleaners, requiring less user intervention and offering an unrestricted cleaning experience. Some models are compatible with smart home systems and can respond to voice commands. This makes them more convenient to use. Robot vacuums have their limitations. They can&#39;t be used to clean all surfaces, and they aren&#39;t always effective on particular types of debris, like pet hair. They also tend to drain their batteries faster, and require frequent recharges and regular maintenance. Based on <a href="https://glass-elmore-2.federatedjournals.com/the-top-5-reasons-people-thrive-in-the-robots-that-vacuum-and-mop-industry">budget robot vacuum</a> choose, some robots are better at certain tasks than others, and it is important to know their strengths and weaknesses before purchasing. Modern robots are equipped with sensors that allow them to navigate safely around furniture, stairs, and other dangers. They can also make a digital floor map to ensure that each inch is thoroughly cleaned without having to repeat areas. Certain models also come with cameras to enable more precise obstacle avoidance. In addition to their sophisticated technology for navigation, robot vacuums are known for getting stuck on or tangled in things like shoelaces, socks and pet toys, which could cause them to stop working completely. Nat, one of the CHOICE community members advises you to “vacuum check” your home prior to using the robot. In addition to that an uncharged robot could take up to two hours to finish its job and the bin it collects its dirt in is generally smaller than a typical vacuum cleaner&#39;s bin, which means it has to be emptied more frequently. Some robotic vacuums aren&#39;t able to be stopped or paused, so you&#39;ll need to use the cord to vacuum in the places where the robot won&#39;t. Plus, if you get a high-end model equipped with a camera, you should be aware that it&#39;s capturing data about your home and could give it to third-party companies, unless you specifically switch off that feature. They&#39;re cheaper than traditional vacuums. While robot vacuums may appear to be a costly investment however, they can save money in the long run. They can save you money by avoiding the expense of hiring a cleaning firm and are more quiet than conventional vacuum cleaners. They are also environmentally friendly, and don&#39;t require bags. They can be programmed to clean when you&#39;re away from your home. This is perfect for people suffering from back or joint pain. However, it&#39;s important to know that robot vacuums aren&#39;t as effective as regular vacuum cleaners at cleaning specific areas of your home. They can be caught under furniture, on thresholds of doors and in thick rugs. They can also be caught on cords and shoelaces. It is important to keep your device clean and empty the dust bin. Sensors aid robots in mapping their surroundings and determine which path to take. This helps them avoid obstructions and ensure that they stay clear from stairs. Certain robots come with features that allow you to set up no-go zones in areas that the device shouldn&#39;t go. These features make robots a good option for households with pets, or for people who don&#39;t have the time to clean regularly. Despite all of their smarts they can be difficult to manage. They can easily get stuck under or on furniture and are often required to be restarted when they get snagged on something. They may also have a hard time reaching high cabinets, bay windows or desks. This makes them less suitable for multi-story houses. Robot vacuums are more difficult to maintain than traditional vacuums. They might not be right for everyone. They have smaller dustbins, some of which are less than 400ml. They need to be emptied often or else the robot will drag dirt across your floors. Also, you&#39;ll need to change the filters regularly. Additionally, it&#39;s important to know that many manufacturers of robot vacuums collect data about their customers. This data could be sold to third party. Some people may find this a problem particularly those who are concerned about privacy concerns. It is important to review the policies of the manufacturer and determine whether they&#39;re appropriate for you. They&#39;re easier to clean Robot vacuum cleaners are more simple to use than traditional vacuum cleaners, however they don&#39;t always pick up all dirt. This is particularly the case if you live a large house or apartment with carpets, as robots can often struggle to remove dirt and debris that are embedded within rugs. Some models also have motors that are less powerful than standard vacuums and aren&#39;t able to handle dust or other heavy materials. If your primary concern is keeping your floors in good condition and looking clean, then a robotic vacuum cleaner is an ideal choice. These machines are able to reach areas that are difficult to clean using a mop or brush that is long-handled, such as under beds and tables. This can help you prevent the accumulation of dust and allergens which can trigger health issues such as asthma and allergies. Another benefit of these robotic vacuums is that they typically have smaller batteries than traditional vacuums. This allows them to finish their cleaning in a lesser amount of time. They also have a smart system that tracks their progress, and then resumes automatically where they started when they are required to recharge. This can make your home appear more tidy and organized without much effort. In addition, robots can be fitted with a variety of settings and features that can be customized to meet your specific cleaning needs. For example, you can program the machine to clean only specific rooms or areas of your home, and also schedule a regular cleaning. You can also choose an option that will automatically return to the dock for charging when its bin is full. This can be a great option for those with limited mobility who need to cut down on the amount of manual bending and stooping they must do when vacuuming. Robotic vacuum cleaners are a fantastic alternative for homes with a variety of. They are especially useful in homes with one level, in which they can move around smooth surfaces. They are also a great option to conventional vacuuming for those who have mobility issues or health problems that make it hard to bend over or mop. In addition, they could also save you money over the long term by reducing the amount of times you need to purchase cleaning products.</p>
]]></content:encoded>
      <guid>//painttemple5.bravejournal.net/the-ultimate-glossary-of-terms-about-robot-vacuums-best</guid>
      <pubDate>Thu, 19 Dec 2024 12:00:47 +0000</pubDate>
    </item>
    <item>
      <title>What To Focus On When Improving Robot Vacuums Best</title>
      <link>//painttemple5.bravejournal.net/what-to-focus-on-when-improving-robot-vacuums-best</link>
      <description>&lt;![CDATA[The Best Robot Vacuums The top robot vacuums are able remove fine dust particles as well as other debris that is found on hard floors or carpets with a low pile. They also excel in removing larger debris like metal screws, Orzo noodles and even pet hair. Select a model with a large bin and self-emptying docks to reduce maintenance time. The majority of models can be used with apps and digital assistants to enable hands-free operation.  They&#39;re great to play with If you&#39;re looking for a fun way to clean your home or just want to have a little fun, robot vacuums can be a great addition to your daily life. They&#39;re much more efficient than traditional vacuums and can clean many different surfaces. They also have a range of innovative features, such as the ability to connect to your smartphone, set up cleaning schedules, and even manage them remotely. This makes them an excellent option for families and those who are always on the go. Robot vacuums are a fantastic technology however they can be expensive and require more maintenance than standard vacuums. They also come with a an elongated warranty compared to other household appliances. It is essential to conduct your research prior to buying one. The best robot vacuums are able to be used on all types of flooring including bare floors and carpets. They can even move around furniture, unlike traditional vacuums. They can also sense and navigate stairs. They come with a low-profile to clean under furniture and an LED light circle that helps them see in dim light situations. They have sensors that can detect obstacles and stairs to ensure smooth and safe navigation. Robot vacuums offer a range of mopping options. They can remove stains and spills, get rid of fine dust, and get rid of pet hair. Some models combine mopping and vacuuming while others are more focused on just one. Some models can even automatically switch between cleaning modes depending on the type of surface. Take into consideration the size of your home when selecting a robot vacuum. A larger model will have a bigger area of coverage, whereas a smaller one is better for tight spaces. It is also essential to think about your requirements and budget before purchasing a model. CHOICE community member Nat explains that while robot vacuums can be great fun however, they&#39;re not 100% reliable. They can become stuck in furniture, door thresholds and snag on items like stray shoelaces or pet toys. They can also be caught in the vacuum and cause damage. They&#39;re more efficient Robot vacuums are equipped with motors, sensors, and intelligent programming that allow them to navigate, map and clean your floors autonomously. They&#39;re often more efficient than conventional vacuum cleaners, requiring less user intervention and offering an unrestricted cleaning experience. Some models are compatible with smart home systems and can respond to voice commands. This makes them more convenient to use. Robot vacuums have their limitations. They can&#39;t be used to clean all surfaces, and they aren&#39;t always effective on particular types of debris, like pet hair. They also tend to drain their batteries faster, and require frequent recharges and regular maintenance. Based on budget robot vacuum choose, some robots are better at certain tasks than others, and it is important to know their strengths and weaknesses before purchasing. Modern robots are equipped with sensors that allow them to navigate safely around furniture, stairs, and other dangers. They can also make a digital floor map to ensure that each inch is thoroughly cleaned without having to repeat areas. Certain models also come with cameras to enable more precise obstacle avoidance. In addition to their sophisticated technology for navigation, robot vacuums are known for getting stuck on or tangled in things like shoelaces, socks and pet toys, which could cause them to stop working completely. Nat, one of the CHOICE community members advises you to &#34;vacuum check&#34; your home prior to using the robot. In addition to that an uncharged robot could take up to two hours to finish its job and the bin it collects its dirt in is generally smaller than a typical vacuum cleaner&#39;s bin, which means it has to be emptied more frequently. Some robotic vacuums aren&#39;t able to be stopped or paused, so you&#39;ll need to use the cord to vacuum in the places where the robot won&#39;t. Plus, if you get a high-end model equipped with a camera, you should be aware that it&#39;s capturing data about your home and could give it to third-party companies, unless you specifically switch off that feature. They&#39;re cheaper than traditional vacuums. While robot vacuums may appear to be a costly investment however, they can save money in the long run. They can save you money by avoiding the expense of hiring a cleaning firm and are more quiet than conventional vacuum cleaners. They are also environmentally friendly, and don&#39;t require bags. They can be programmed to clean when you&#39;re away from your home. This is perfect for people suffering from back or joint pain. However, it&#39;s important to know that robot vacuums aren&#39;t as effective as regular vacuum cleaners at cleaning specific areas of your home. They can be caught under furniture, on thresholds of doors and in thick rugs. They can also be caught on cords and shoelaces. It is important to keep your device clean and empty the dust bin. Sensors aid robots in mapping their surroundings and determine which path to take. This helps them avoid obstructions and ensure that they stay clear from stairs. Certain robots come with features that allow you to set up no-go zones in areas that the device shouldn&#39;t go. These features make robots a good option for households with pets, or for people who don&#39;t have the time to clean regularly. Despite all of their smarts they can be difficult to manage. They can easily get stuck under or on furniture and are often required to be restarted when they get snagged on something. They may also have a hard time reaching high cabinets, bay windows or desks. This makes them less suitable for multi-story houses. Robot vacuums are more difficult to maintain than traditional vacuums. They might not be right for everyone. They have smaller dustbins, some of which are less than 400ml. They need to be emptied often or else the robot will drag dirt across your floors. Also, you&#39;ll need to change the filters regularly. Additionally, it&#39;s important to know that many manufacturers of robot vacuums collect data about their customers. This data could be sold to third party. Some people may find this a problem particularly those who are concerned about privacy concerns. It is important to review the policies of the manufacturer and determine whether they&#39;re appropriate for you. They&#39;re easier to clean Robot vacuum cleaners are more simple to use than traditional vacuum cleaners, however they don&#39;t always pick up all dirt. This is particularly the case if you live a large house or apartment with carpets, as robots can often struggle to remove dirt and debris that are embedded within rugs. Some models also have motors that are less powerful than standard vacuums and aren&#39;t able to handle dust or other heavy materials. If your primary concern is keeping your floors in good condition and looking clean, then a robotic vacuum cleaner is an ideal choice. These machines are able to reach areas that are difficult to clean using a mop or brush that is long-handled, such as under beds and tables. This can help you prevent the accumulation of dust and allergens which can trigger health issues such as asthma and allergies. Another benefit of these robotic vacuums is that they typically have smaller batteries than traditional vacuums. This allows them to finish their cleaning in a lesser amount of time. They also have a smart system that tracks their progress, and then resumes automatically where they started when they are required to recharge. This can make your home appear more tidy and organized without much effort. In addition, robots can be fitted with a variety of settings and features that can be customized to meet your specific cleaning needs. For example, you can program the machine to clean only specific rooms or areas of your home, and also schedule a regular cleaning. You can also choose an option that will automatically return to the dock for charging when its bin is full. This can be a great option for those with limited mobility who need to cut down on the amount of manual bending and stooping they must do when vacuuming. Robotic vacuum cleaners are a fantastic alternative for homes with a variety of. They are especially useful in homes with one level, in which they can move around smooth surfaces. They are also a great option to conventional vacuuming for those who have mobility issues or health problems that make it hard to bend over or mop. In addition, they could also save you money over the long term by reducing the amount of times you need to purchase cleaning products.]]&gt;</description>
      <content:encoded><![CDATA[<p>The Best Robot Vacuums The top robot vacuums are able remove fine dust particles as well as other debris that is found on hard floors or carpets with a low pile. They also excel in removing larger debris like metal screws, Orzo noodles and even pet hair. Select a model with a large bin and self-emptying docks to reduce maintenance time. The majority of models can be used with apps and digital assistants to enable hands-free operation. <img src="https://cdn.freshstore.cloud/offer/images/15131/693/c/ecovacs-deebot-n10-robot-vacuum-cleaner-with-mop-4300pa-auto-empty-station-300-min-4300-sqft-truemapping-2-0-dtof-laser-navigation-carpet-detection-precise-customized-cleaning-no-go-zones-693-small.jpg" alt=""> They&#39;re great to play with If you&#39;re looking for a fun way to clean your home or just want to have a little fun, robot vacuums can be a great addition to your daily life. They&#39;re much more efficient than traditional vacuums and can clean many different surfaces. They also have a range of innovative features, such as the ability to connect to your smartphone, set up cleaning schedules, and even manage them remotely. This makes them an excellent option for families and those who are always on the go. Robot vacuums are a fantastic technology however they can be expensive and require more maintenance than standard vacuums. They also come with a an elongated warranty compared to other household appliances. It is essential to conduct your research prior to buying one. The best robot vacuums are able to be used on all types of flooring including bare floors and carpets. They can even move around furniture, unlike traditional vacuums. They can also sense and navigate stairs. They come with a low-profile to clean under furniture and an LED light circle that helps them see in dim light situations. They have sensors that can detect obstacles and stairs to ensure smooth and safe navigation. Robot vacuums offer a range of mopping options. They can remove stains and spills, get rid of fine dust, and get rid of pet hair. Some models combine mopping and vacuuming while others are more focused on just one. Some models can even automatically switch between cleaning modes depending on the type of surface. Take into consideration the size of your home when selecting a robot vacuum. A larger model will have a bigger area of coverage, whereas a smaller one is better for tight spaces. It is also essential to think about your requirements and budget before purchasing a model. CHOICE community member Nat explains that while robot vacuums can be great fun however, they&#39;re not 100% reliable. They can become stuck in furniture, door thresholds and snag on items like stray shoelaces or pet toys. They can also be caught in the vacuum and cause damage. They&#39;re more efficient Robot vacuums are equipped with motors, sensors, and intelligent programming that allow them to navigate, map and clean your floors autonomously. They&#39;re often more efficient than conventional vacuum cleaners, requiring less user intervention and offering an unrestricted cleaning experience. Some models are compatible with smart home systems and can respond to voice commands. This makes them more convenient to use. Robot vacuums have their limitations. They can&#39;t be used to clean all surfaces, and they aren&#39;t always effective on particular types of debris, like pet hair. They also tend to drain their batteries faster, and require frequent recharges and regular maintenance. Based on <a href="https://glass-elmore-2.federatedjournals.com/the-top-5-reasons-people-thrive-in-the-robots-that-vacuum-and-mop-industry">budget robot vacuum</a> choose, some robots are better at certain tasks than others, and it is important to know their strengths and weaknesses before purchasing. Modern robots are equipped with sensors that allow them to navigate safely around furniture, stairs, and other dangers. They can also make a digital floor map to ensure that each inch is thoroughly cleaned without having to repeat areas. Certain models also come with cameras to enable more precise obstacle avoidance. In addition to their sophisticated technology for navigation, robot vacuums are known for getting stuck on or tangled in things like shoelaces, socks and pet toys, which could cause them to stop working completely. Nat, one of the CHOICE community members advises you to “vacuum check” your home prior to using the robot. In addition to that an uncharged robot could take up to two hours to finish its job and the bin it collects its dirt in is generally smaller than a typical vacuum cleaner&#39;s bin, which means it has to be emptied more frequently. Some robotic vacuums aren&#39;t able to be stopped or paused, so you&#39;ll need to use the cord to vacuum in the places where the robot won&#39;t. Plus, if you get a high-end model equipped with a camera, you should be aware that it&#39;s capturing data about your home and could give it to third-party companies, unless you specifically switch off that feature. They&#39;re cheaper than traditional vacuums. While robot vacuums may appear to be a costly investment however, they can save money in the long run. They can save you money by avoiding the expense of hiring a cleaning firm and are more quiet than conventional vacuum cleaners. They are also environmentally friendly, and don&#39;t require bags. They can be programmed to clean when you&#39;re away from your home. This is perfect for people suffering from back or joint pain. However, it&#39;s important to know that robot vacuums aren&#39;t as effective as regular vacuum cleaners at cleaning specific areas of your home. They can be caught under furniture, on thresholds of doors and in thick rugs. They can also be caught on cords and shoelaces. It is important to keep your device clean and empty the dust bin. Sensors aid robots in mapping their surroundings and determine which path to take. This helps them avoid obstructions and ensure that they stay clear from stairs. Certain robots come with features that allow you to set up no-go zones in areas that the device shouldn&#39;t go. These features make robots a good option for households with pets, or for people who don&#39;t have the time to clean regularly. Despite all of their smarts they can be difficult to manage. They can easily get stuck under or on furniture and are often required to be restarted when they get snagged on something. They may also have a hard time reaching high cabinets, bay windows or desks. This makes them less suitable for multi-story houses. Robot vacuums are more difficult to maintain than traditional vacuums. They might not be right for everyone. They have smaller dustbins, some of which are less than 400ml. They need to be emptied often or else the robot will drag dirt across your floors. Also, you&#39;ll need to change the filters regularly. Additionally, it&#39;s important to know that many manufacturers of robot vacuums collect data about their customers. This data could be sold to third party. Some people may find this a problem particularly those who are concerned about privacy concerns. It is important to review the policies of the manufacturer and determine whether they&#39;re appropriate for you. They&#39;re easier to clean Robot vacuum cleaners are more simple to use than traditional vacuum cleaners, however they don&#39;t always pick up all dirt. This is particularly the case if you live a large house or apartment with carpets, as robots can often struggle to remove dirt and debris that are embedded within rugs. Some models also have motors that are less powerful than standard vacuums and aren&#39;t able to handle dust or other heavy materials. If your primary concern is keeping your floors in good condition and looking clean, then a robotic vacuum cleaner is an ideal choice. These machines are able to reach areas that are difficult to clean using a mop or brush that is long-handled, such as under beds and tables. This can help you prevent the accumulation of dust and allergens which can trigger health issues such as asthma and allergies. Another benefit of these robotic vacuums is that they typically have smaller batteries than traditional vacuums. This allows them to finish their cleaning in a lesser amount of time. They also have a smart system that tracks their progress, and then resumes automatically where they started when they are required to recharge. This can make your home appear more tidy and organized without much effort. In addition, robots can be fitted with a variety of settings and features that can be customized to meet your specific cleaning needs. For example, you can program the machine to clean only specific rooms or areas of your home, and also schedule a regular cleaning. You can also choose an option that will automatically return to the dock for charging when its bin is full. This can be a great option for those with limited mobility who need to cut down on the amount of manual bending and stooping they must do when vacuuming. Robotic vacuum cleaners are a fantastic alternative for homes with a variety of. They are especially useful in homes with one level, in which they can move around smooth surfaces. They are also a great option to conventional vacuuming for those who have mobility issues or health problems that make it hard to bend over or mop. In addition, they could also save you money over the long term by reducing the amount of times you need to purchase cleaning products.</p>
]]></content:encoded>
      <guid>//painttemple5.bravejournal.net/what-to-focus-on-when-improving-robot-vacuums-best</guid>
      <pubDate>Thu, 19 Dec 2024 12:00:17 +0000</pubDate>
    </item>
    <item>
      <title>Indisputable Proof That You Need Automatic Vacuum And Mop</title>
      <link>//painttemple5.bravejournal.net/indisputable-proof-that-you-need-automatic-vacuum-and-mop</link>
      <description>&lt;![CDATA[!DOCTYPE HTML&#xA;html&#xA;&#x9;head&#xA;&#xA;&#x9;&#x9;titleNew Post &amp;mdash; bravejournal.net/title&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;/css/write.css&#34; /&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0&#34; /&#xA;&#xA;&#x9;&#x9;meta name=&#34;google&#34; value=&#34;notranslate&#34;&#xA;&#x9;/head&#xA;&#x9;body id=&#34;pad&#34; class=&#34;light&#34;&#xA;&#xA;&#x9;&#x9;div id=&#34;overlay&#34;/div&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;textarea id=&#34;writer&#34; placeholder=&#34;Write...&#34; class=&#34;norm&#34; autofocus/textarea&#xA;&#xA;&#x9;&#x9;div class=&#34;alert success hidden&#34; id=&#34;edited-elsewhere&#34;This post has been updated elsewhere since you last published! a href=&#34;#&#34; id=&#34;erase-edit&#34;Delete draft and reload/a./div&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;header id=&#34;tools&#34;&#xA;&#x9;&#x9;&#x9;div id=&#34;clip&#34;&#xA;&#x9;&#x9;&#x9;&#x9;h1a href=&#34;/me/c/&#34; title=&#34;View blogs&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icblogsdark@2x.png&#34; //a/h1&#xA;&#x9;&#x9;&#x9;&#x9;nav id=&#34;target&#34; ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;has-submenu&#34;a href=&#34;#&#34; id=&#34;publish-to&#34; onclick=&#34;return false&#34;span id=&#34;target-name&#34;Draft/span img class=&#34;ic-18dp&#34; src=&#34;/img/icdownarrowdark@2x.png&#34; //a&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;menu-heading&#34;Publish to.../li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;target selected&#34; id=&#34;blog-painttemple5&#34;a href=&#34;#painttemple5&#34;i class=&#34;material-icons md-18&#34;public/i painttemple5/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;target&#34; id=&#34;blog-anonymous&#34;a href=&#34;#anonymous&#34;i class=&#34;material-icons md-18&#34;description/i emDraft/em/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li id=&#34;user-separator&#34; class=&#34;separator&#34;hr //li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia href=&#34;/me/c/&#34;i class=&#34;material-icons md-18&#34;librarybooks/i View Blogs/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia href=&#34;/me/posts/&#34;i class=&#34;material-icons md-18&#34;viewlist/i View Drafts/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia href=&#34;/me/logout&#34;i class=&#34;material-icons md-18&#34;powersettingsnew/i  Log out/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;/ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;/li&#xA;&#x9;&#x9;&#x9;&#x9;/ul/nav&#xA;&#x9;&#x9;&#x9;&#x9;nav id=&#34;font-picker&#34; class=&#34;if-room room-3 hidden&#34; style=&#34;margin-left:-1em&#34;ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;has-submenu&#34;a href=&#34;#&#34; id=&#34;&#34; onclick=&#34;return false&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icfontdark@2x.png&#34; / img class=&#34;ic-18dp&#34; src=&#34;/img/icdownarrowdark@2x.png&#34; //a&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;ul style=&#34;text-align: center&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;menu-heading&#34;Font/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;li class=&#34;selected&#34;a class=&#34;font norm&#34; href=&#34;#norm&#34;Serif/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia class=&#34;font sans&#34; href=&#34;#sans&#34;Sans-serif/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;lia class=&#34;font wrap&#34; href=&#34;#wrap&#34;Monospace/a/li&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;/ul&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;/li&#xA;&#x9;&#x9;&#x9;&#x9;/ul/nav&#xA;&#x9;&#x9;&#x9;&#x9;span id=&#34;wc&#34; class=&#34;hidden if-room room-4&#34;0 words/span&#xA;&#x9;&#x9;&#x9;/div&#xA;&#x9;&#x9;&#x9;noscript style=&#34;margin-left: 2em;&#34;strongNOTE/strong: for now, you&#39;ll need Javascript enabled to post./noscript&#xA;&#x9;&#x9;&#x9;div id=&#34;belt&#34;&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;div class=&#34;tool hidden if-room room-2&#34;a href=&#34;#theme&#34; title=&#34;Toggle theme&#34; id=&#34;toggle-theme&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icbrightnessdark@2x.png&#34; //a/div&#xA;&#x9;&#x9;&#x9;&#x9;div class=&#34;tool if-room room-1&#34;a href=&#34;/me/posts/&#34; title=&#34;View posts&#34; id=&#34;view-posts&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/iclistdark@2x.png&#34; //a/div&#xA;&#x9;&#x9;&#x9;&#x9;div class=&#34;tool&#34;a href=&#34;#publish&#34; title=&#34;Publish&#34; id=&#34;publish&#34;img class=&#34;ic-24dp&#34; src=&#34;/img/icsenddark@2x.png&#34; //a/div&#xA;&#x9;&#x9;&#x9;/div&#xA;&#x9;&#x9;/header&#xA;&#xA;&#x9;&#x9;script src=&#34;/js/h.js&#34;/script&#xA;&#x9;&#x9;script type=&#34;text/javascript&#34; src=&#34;/js/menu.js&#34;/script&#xA;&#x9;&#x9;script&#xA;&#x9;&#x9;function toggleTheme() {&#xA;&#x9;&#x9;&#x9;if (document.body.classList.contains(&#39;light&#39;)) {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;dark&#39;);&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;light&#39;);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;H.set(&#39;padTheme&#39;, newTheme);&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;function setTheme(newTheme) {&#xA;&#x9;&#x9;&#x9;document.body.classList.remove(&#39;light&#39;);&#xA;&#x9;&#x9;&#x9;document.body.classList.remove(&#39;dark&#39;);&#xA;&#x9;&#x9;&#x9;document.body.classList.add(newTheme);&#xA;&#x9;&#x9;&#x9;var btns = Array.prototype.slice.call(document.getElementById(&#39;tools&#39;).querySelectorAll(&#39;a img&#39;));&#xA;&#x9;&#x9;&#x9;if (newTheme == &#39;light&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;if (H.get(&#39;padTheme&#39;, &#39;auto&#39;) == &#39;dark&#39;){&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;for (var i=0; i&lt;btns.length; i++) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;btns[i].src = btns[i].src.replace(&#39;@2x.png&#39;, &#39;dark@2x.png&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;for (var i=0; i&lt;btns.length; i++) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;btns[i].src = btns[i].src.replace(&#39;dark@2x.png&#39;, &#39;@2x.png&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;H.set(&#39;padTheme&#39;, newTheme);&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;if (H.get(&#39;padTheme&#39;, &#39;auto&#39;) == &#39;light&#39;) {&#xA;&#x9;&#x9;&#x9;setTheme(&#39;light&#39;);&#xA;&#x9;&#x9;} else if (H.get(&#39;padTheme&#39;, &#39;auto&#39;) == &#39;dark&#39;) {&#xA;&#x9;&#x9;&#x9;setTheme(&#39;dark&#39;);&#xA;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;const isDarkMode = window.matchMedia(&#34;(prefers-color-scheme: dark)&#34;).matches&#xA;&#x9;&#x9;&#x9;if (isDarkMode) {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;dark&#39;);&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;setTheme(&#39;light&#39;);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;var $writer = H.getEl(&#39;writer&#39;);&#xA;&#x9;&#x9;var $btnPublish = H.getEl(&#39;publish&#39;);&#xA;&#x9;&#x9;var $btnEraseEdit = H.getEl(&#39;edited-elsewhere&#39;);&#xA;&#x9;&#x9;var $wc = H.getEl(&#34;wc&#34;);&#xA;&#x9;&#x9;var updateWordCount = function() {&#xA;&#x9;&#x9;&#x9;var words = 0;&#xA;&#x9;&#x9;&#x9;var val = $writer.el.value.trim();&#xA;&#x9;&#x9;&#x9;if (val != &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;words = $writer.el.value.trim().replace(/\s+/gi, &#39; &#39;).split(&#39; &#39;).length;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;$wc.el.innerText = words + &#34; word&#34; + (words != 1 ? &#34;s&#34; : &#34;&#34;);&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var setButtonStates = function() {&#xA;&#x9;&#x9;&#x9;if (!canPublish) {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.className = &#39;disabled&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;return;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;if ($writer.el.value.length === 0 || (draftDoc != &#39;lastDoc&#39; &amp;&amp; $writer.el.value == origDoc)) {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.className = &#39;disabled&#39;;&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.className = &#39;&#39;;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var draftDoc = &#39;lastDoc&#39;;&#xA;&#x9;&#x9;var updatedStr = &#39;&#39;;&#xA;&#x9;&#x9;var updated = null;&#xA;&#x9;&#x9;if (updatedStr != &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;updated = new Date(updatedStr);&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var ok = H.load($writer, draftDoc, true, updated);&#xA;&#x9;&#x9;if (!ok) {&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;$btnEraseEdit.el.classList.remove(&#39;hidden&#39;);&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var defaultTimeSet = false;&#xA;&#x9;&#x9;updateWordCount();&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;var typingTimer;&#xA;&#x9;&#x9;var doneTypingInterval = 200;&#xA;&#xA;&#x9;&#x9;var posts;&#xA;&#x9;&#x9;var canPublish = true;&#xA;&#x9;&#x9;var publishing = false;&#xA;&#x9;&#x9;var justPublished = false;&#xA;&#x9;&#x9;var silenced =  false ;&#xA;&#x9;&#x9;var publish = function(content, font) {&#xA;&#x9;&#x9;&#x9;if (silenced === true) {&#xA;&#x9;&#x9;&#x9;&#x9;alert(&#34;Your account is silenced, so you can&#39;t publish or update posts.&#34;);&#xA;&#x9;&#x9;&#x9;&#x9;return;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;$btnPublish.el.children[0].textContent = &#39;more_horiz&#39;;&#xA;&#x9;&#x9;&#x9;publishing = true;&#xA;&#x9;&#x9;&#x9;var xpostTarg = H.get(&#39;crosspostTarget&#39;, &#39;[]&#39;);&#xA;&#xA;&#x9;&#x9;&#x9;var http = new XMLHttpRequest();&#xA;&#x9;&#x9;&#x9;var post = H.getTitleStrict(content);&#xA;&#xA;&#x9;&#x9;&#x9;var params = {&#xA;&#x9;&#x9;&#x9;&#x9;body: post.content,&#xA;&#x9;&#x9;&#x9;&#x9;title: post.title,&#xA;&#x9;&#x9;&#x9;&#x9;font: font&#xA;&#x9;&#x9;&#x9;};&#xA;&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;var lang = navigator.languages ? navigator.languages[0] : (navigator.language || navigator.userLanguage);&#xA;&#x9;&#x9;&#x9;lang = lang.substring(0, 2);&#xA;&#x9;&#x9;&#x9;params.lang = lang;&#xA;&#xA;&#x9;&#x9;&#x9;var url = &#34;/api/posts&#34;;&#xA;&#x9;&#x9;&#x9;var postTarget = H.get(&#39;postTarget&#39;, &#39;anonymous&#39;);&#xA;&#x9;&#x9;&#x9;if (postTarget != &#39;anonymous&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;url = &#34;/api/collections/&#34; + postTarget + &#34;/posts&#34;;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;params.crosspost = JSON.parse(xpostTarg);&#xA;&#x9;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;&#x9;http.open(&#34;POST&#34;, url, true);&#xA;&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;http.setRequestHeader(&#34;Content-type&#34;, &#34;application/json&#34;);&#xA;&#xA;&#x9;&#x9;&#x9;http.onreadystatechange = function() {&#xA;&#x9;&#x9;&#x9;&#x9;if (http.readyState == 4) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;publishing = false;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if (http.status == 200 || http.status == 201) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;data = JSON.parse(http.responseText);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;id = data.data.id;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;nextURL = &#39;/&#39;+id;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;localStorage.setItem(&#39;draft&#39;+id+&#39;-published&#39;, new Date().toISOString());&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if (postTarget != &#39;anonymous&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;  nextURL = &#39;/&#39;+postTarget+&#39;/&#39;+data.data.slug;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;editToken = data.data.token;&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;justPublished = true;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if (draftDoc != &#39;lastDoc&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;H.remove(draftDoc);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;H.set(draftDoc, &#39;&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;window.location = nextURL;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.children[0].textContent = &#39;send&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;alert(&#34;Failed to post. Please try again.&#34;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;http.send(JSON.stringify(params));&#xA;&#x9;&#x9;};&#xA;&#xA;&#x9;&#x9;setButtonStates();&#xA;&#x9;&#x9;$writer.on(&#39;keyup input&#39;, function() {&#xA;&#x9;&#x9;&#x9;setButtonStates();&#xA;&#x9;&#x9;&#x9;clearTimeout(typingTimer);&#xA;&#x9;&#x9;&#x9;typingTimer = setTimeout(doneTyping, doneTypingInterval);&#xA;&#x9;&#x9;}, false);&#xA;&#x9;&#x9;$writer.on(&#39;keydown&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;clearTimeout(typingTimer);&#xA;&#x9;&#x9;&#x9;if (e.keyCode == 13 &amp;&amp; (e.metaKey || e.ctrlKey)) {&#xA;&#x9;&#x9;&#x9;&#x9;$btnPublish.el.click();&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;});&#xA;&#x9;&#x9;$btnPublish.on(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;if (!publishing &amp;&amp; $writer.el.value) {&#xA;&#x9;&#x9;&#x9;&#x9;var content = $writer.el.value;&#xA;&#x9;&#x9;&#x9;&#x9;publish(content, selectedFont);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;});&#xA;&#x9;&#x9;H.getEl(&#39;erase-edit&#39;).on(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;H.remove(draftDoc);&#xA;&#x9;&#x9;&#x9;H.remove(draftDoc+&#39;-published&#39;);&#xA;&#x9;&#x9;&#x9;justPublished = true; &#xA;&#x9;&#x9;&#x9;location.reload();&#xA;&#x9;&#x9;});&#xA;&#xA;&#x9;&#x9;H.getEl(&#39;toggle-theme&#39;).on(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;var newTheme = &#39;light&#39;;&#xA;&#x9;&#x9;&#x9;if (document.body.className == &#39;light&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;newTheme = &#39;dark&#39;;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;toggleTheme();&#xA;&#x9;&#x9;});&#xA;&#xA;&#x9;&#x9;var targets = document.querySelectorAll(&#39;#target li.target a&#39;);&#xA;&#x9;&#x9;for (var i=0; i&lt;targets.length; i++) {&#xA;&#x9;&#x9;&#x9;targets[i].addEventListener(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;&#x9;var targetName = this.href.substring(this.href.indexOf(&#39;#&#39;)+1);&#xA;&#x9;&#x9;&#x9;&#x9;H.set(&#39;postTarget&#39;, targetName);&#xA;&#xA;&#x9;&#x9;&#x9;&#x9;document.querySelector(&#39;#target li.target.selected&#39;).classList.remove(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;this.parentElement.classList.add(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;var newText = this.innerText.split(&#39; &#39;);&#xA;&#x9;&#x9;&#x9;&#x9;newText.shift();&#xA;&#x9;&#x9;&#x9;&#x9;document.getElementById(&#39;target-name&#39;).innerText = newText.join(&#39; &#39;);&#xA;&#x9;&#x9;&#x9;});&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var postTarget = H.get(&#39;postTarget&#39;, &#39;painttemple5&#39;);&#xA;&#x9;&#x9;if (location.hash != &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;postTarget = location.hash.substring(1);&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;location.hash = &#39;&#39;;&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var pte = document.querySelector(&#39;#target li.target#blog-&#39;+postTarget+&#39; a&#39;);&#xA;&#x9;&#x9;if (pte != null) {&#xA;&#x9;&#x9;&#x9;pte.click();&#xA;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;postTarget = &#39;anonymous&#39;;&#xA;&#x9;&#x9;&#x9;H.set(&#39;postTarget&#39;, postTarget);&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;var sansLoaded = false;&#xA;&#x9;&#x9;WebFontConfig = {&#xA;&#x9;&#x9;&#x9;custom: { families: [ &#39;Lora:400,700:latin&#39; ], urls: [ &#39;/css/fonts.css&#39; ] }&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var loadSans = function() {&#xA;&#x9;&#x9;  if (sansLoaded) return;&#xA;&#x9;&#x9;  sansLoaded = true;&#xA;&#x9;&#x9;  WebFontConfig.custom.families.push(&#39;Open+Sans:400,700:latin&#39;);&#xA;&#x9;&#x9;  try {&#xA;&#x9;&#x9;&#x9;  (function() {&#xA;&#x9;&#x9;&#x9;&#x9;var wf=document.createElement(&#39;script&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;wf.src = &#39;/js/webfont.js&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;wf.type=&#39;text/javascript&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;wf.async=&#39;true&#39;;&#xA;&#x9;&#x9;&#x9;&#x9;var s=document.getElementsByTagName(&#39;script&#39;)[0];&#xA;&#x9;&#x9;&#x9;&#x9;s.parentNode.insertBefore(wf, s);&#xA;&#x9;&#x9;&#x9;  })();&#xA;&#x9;&#x9;  } catch (e) {}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;var fonts = document.querySelectorAll(&#39;nav#font-picker a.font&#39;);&#xA;&#x9;&#x9;for (var i=0; i&lt;fonts.length; i++) {&#xA;&#x9;&#x9;&#x9;fonts[i].addEventListener(&#39;click&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;&#x9;e.preventDefault();&#xA;&#x9;&#x9;&#x9;&#x9;selectedFont = this.href.substring(this.href.indexOf(&#39;#&#39;)+1);&#xA;&#x9;&#x9;&#x9;&#x9;$writer.el.className = selectedFont;&#xA;&#x9;&#x9;&#x9;&#x9;document.querySelector(&#39;nav#font-picker li.selected&#39;).classList.remove(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;this.parentElement.classList.add(&#39;selected&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;H.set(&#39;padFont&#39;, selectedFont);&#xA;&#x9;&#x9;&#x9;&#x9;if (selectedFont == &#39;sans&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;loadSans();&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;});&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;var selectedFont = H.get(&#39;padFont&#39;, &#39;norm&#39;);&#xA;&#x9;&#x9;var sfe = document.querySelector(&#39;nav#font-picker a.font.&#39;+selectedFont);&#xA;&#x9;&#x9;if (sfe != null) {&#xA;&#x9;&#x9;&#x9;sfe.click();&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;var doneTyping = function() {&#xA;&#x9;&#x9;&#x9;if (draftDoc == &#39;lastDoc&#39; || $writer.el.value != origDoc) {&#xA;&#x9;&#x9;&#x9;&#x9;H.save($writer, draftDoc);&#xA;&#x9;&#x9;&#x9;&#x9;if (!defaultTimeSet) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;var lastLocalPublishStr = localStorage.getItem(draftDoc+&#39;-published&#39;);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if (lastLocalPublishStr == null || lastLocalPublishStr == &#39;&#39;) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;localStorage.setItem(draftDoc+&#39;-published&#39;, updatedStr);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;defaultTimeSet = true;&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;updateWordCount();&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;window.addEventListener(&#39;beforeunload&#39;, function(e) {&#xA;&#x9;&#x9;&#x9;if (draftDoc != &#39;lastDoc&#39; &amp;&amp; $writer.el.value == origDoc) {&#xA;&#x9;&#x9;&#x9;&#x9;H.remove(draftDoc);&#xA;&#x9;&#x9;&#x9;&#x9;H.remove(draftDoc+&#39;-published&#39;);&#xA;&#x9;&#x9;&#x9;} else if (!justPublished) {&#xA;&#x9;&#x9;&#x9;&#x9;doneTyping();&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;});&#xA;&#xA;&#x9;&#x9;try {&#xA;&#x9;&#x9;  (function() {&#xA;&#x9;&#x9;&#x9;var wf=document.createElement(&#39;script&#39;);&#xA;&#x9;&#x9;&#x9;wf.src = &#39;/js/webfont.js&#39;;&#xA;&#x9;&#x9;&#x9;wf.type=&#39;text/javascript&#39;;&#xA;&#x9;&#x9;&#x9;wf.async=&#39;true&#39;;&#xA;&#x9;&#x9;&#x9;var s=document.getElementsByTagName(&#39;script&#39;)[0];&#xA;&#x9;&#x9;&#x9;s.parentNode.insertBefore(wf, s);&#xA;&#x9;&#x9;  })();&#xA;&#x9;&#x9;} catch (e) {&#xA;&#x9;&#x9;  &#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;/script&#xA;&#x9;&#x9;link href=&#34;/css/icons.css&#34; rel=&#34;stylesheet&#34;&#xA;&#x9;/body&#xA;/html]]&gt;</description>
      <content:encoded><![CDATA[<p>&lt;!DOCTYPE HTML&gt;

    </p>

<p>        </p>

<p>        </p>

<p>        </p>

<p>        
    
    </p>

<p>        <div id="overlay" id="overlay"></div></p>

<p>        </p>

<p>        <div class="alert success hidden" id="edited-elsewhere" id="edited-elsewhere">This post has been updated elsewhere since you last published! <a id="erase-edit" id="erase-edit">Delete draft and reload</a>.</div></p>

<p>        <header id="tools" id="tools">
            <div id="clip" id="clip">
                <h1><a href="/me/c/" title="View blogs"><img class="ic-24dp" src="/img/ic_blogs_dark@2x.png"/></a></h1>
                <ul>                        <li class="has-submenu"><a id="publish-to" id="publish-to"><span id="target-name" id="target-name">Draft</span> <img class="ic-18dp" src="/img/ic_down_arrow_dark@2x.png"/></a>
                        <ul>                            <li class="menu-heading">Publish to...</li></p>

<p>                                <li class="target selected" id="blog-painttemple5" id="blog-painttemple5"><a href="#painttemple5"><i class="material-icons md-18">public</i> painttemple5</a></li></p>

<p>                            <li class="target" id="blog-anonymous" id="blog-anonymous"><a href="#anonymous"><i class="material-icons md-18">description</i> <em>Draft</em></a></li>
                            <li id="user-separator" id="user-separator" class="separator"><hr/></li></p>

<p>                            <li><a href="/me/c/"><i class="material-icons md-18">library_books</i> View Blogs</a></li></p>

<p>                            <li><a href="/me/posts/"><i class="material-icons md-18">view<em>list</i> View Drafts</a></li>
                            <li><a href="/me/logout"><i class="material-icons md-18">power</em>settings<em>new</i>  Log out</a></li>
                        </ul>
                    </li>
                </ul>
                <ul>                        <li class="has-submenu"><a id="">&lt;img class=“ic-24dp” src=“/img/ic</em>font<em>dark@2x.png” /&gt; &lt;img class=“ic-18dp” src=“/img/ic</em>down<em>arrow</em>dark@2x.png” /&gt;</a>
                        <ul style="text-align: center">
                            <li class="menu-heading">Font</li>
                            <li class="selected"><a class="font norm" href="#norm">Serif</a></li>
                            <li><a class="font sans" href="#sans">Sans-serif</a></li>
                            <li><a class="font wrap" href="#wrap">Monospace</a></li>
                        </ul>
                    </li>
                </ul>
                <span id="wc" id="wc" class="hidden if-room room-4">0 words</span>
            </div>
            
            <div id="belt" id="belt"></p>

<p>                <div class="tool hidden if-room room-2"><a href="#theme" title="Toggle theme" id="toggle-theme" id="toggle-theme"><img class="ic-24dp" src="/img/ic_brightness_dark@2x.png"/></a></div>
                <div class="tool if-room room-1"><a href="/me/posts/" title="View posts" id="view-posts" id="view-posts"><img class="ic-24dp" src="/img/ic_list_dark@2x.png"/></a></div>
                <div class="tool"><a href="#publish" title="Publish" id="publish" id="publish"><img class="ic-24dp" src="/img/ic_send_dark@2x.png"/></a></div>
            </div>
        </header></p>

<p>        
        
        
        
    
</p>
]]></content:encoded>
      <guid>//painttemple5.bravejournal.net/indisputable-proof-that-you-need-automatic-vacuum-and-mop</guid>
      <pubDate>Thu, 19 Dec 2024 11:59:39 +0000</pubDate>
    </item>
  </channel>
</rss>