This is it's March 29th and I know I'm sorry it's March 30th 30th and this is sent government operations and what we're doing today is just we had a bill as 147 to talk about language access and we heard from Susana Davis who talked to us about what her language access program is doing in the administration and with different departments and agencies. So we didn't didn't pass the bill because it seemed that thank you because it seemed unnecessary because of what she was doing so what we did instead was say that we would we would continue the conversation around around language access for legislative activities and what we need to do what we need what we can do what's feasible how how it works out so we're going to just have that discussion today it's just um we're going to hear from some of our legislative staff about what what they've been doing because they've been working really hard on this issue and trying to make it accessible to the deaf and hard of hearing community and so we're just going to have a discussion about what what that means and how we go about it what what more we can do and maybe what we can do in the short run and what has to happen in the long term so that's where we are we're this isn't we don't have a bill we're not doing we're not responding to a bill there's nothing to pass here it's just a general discussion about where where we might go and if we come up with anything that we can all agree on we can always suggest it to the sergeant arms and to our staff and to our state house advisory committee so this is this is the legislative branch that's what we're talking about right now so with that I think that what we'll do is go first um to Mike and um Kevin and um if Damien is with us um and just have a have you talked to us about what what you I know you've been working really hard on um this project and just kind of where you are what's going on what we should expect is it long term short term so this isn't there's nothing about this that is um this is just informational there's nothing about this that is calling you on the carpet or anybody else or this is just informational for us um and I wanted to say that because I understand there was a little bit of anxiety about what we were really up to here and we try to be a very friendly committee and try not to put people on um spot spot that's the word so here we are so Kev I don't know how you want to do this but Kevin and Mike if you want to um just start off with the two of you and however you want to do it and they might did arrange for us to have both the sign interpreter and the closed captioning for this session so thank you very much so would you like to talk to us a little bit about what you're doing and where you're going and what we can do to help for what we can if it's just staying out of the way or whatever it is that we can do um so I certainly don't want to step on your toes Mike you are more than welcome to jump in first if you want to talk about the experience from your side of things and I can fill in if you want or I can start and jump back and forth what works for you um well and I just talk Kevin and and by get something that you want to elaborate on or correct then maybe just interrupt um um so my front director of legislative operations um and we have so far worked with a company called band crow to schedule asl or american sign language um interpreters by request for committee hearings as well as the house floor we also have enlisted a current state contract to provide captioning it's through a state um contract with team mobile Kevin I believe and it's with the executive branch so we're using it as a stop gap while we uh work on a contract with the company in Vermont called white coat captioning that would be more of a consistent um service that we could use again on request so these things cost money each time we use them by the hour they both require it's scheduling so up to 48 hours at least 48 hours in advance and once we've set up that scheduled service we would really appreciate that time being um kept because we have to pay for when we start the scheduling to when we end the schedule that's where we're at right now with it I've worked with Laura Siegel and the folks at the department of independent living dale um on this they've given great feedback and we've been able to improve the process and the experience each time we do it um yeah and I'll certainly jump right in there uh for the record Kevin Moore legislative IT um so I think it's also important that we take a step back um and look at the history of accessibility uh over the last couple of years so obviously we're in a very new world the courtesy of a pandemic and we leverage that time frame to make our entire process much more transparent and accessible than what it used to be uh I don't recall where we were uh specifically prior to the pandemic as far as uh requesting an ADA accommodation for ASL or CART services or other similar accommodations for language translation but I believe it was very rare if ever used within the the organization and so we're kind of learning on the fly here we're making sure that we understand what our obligations are under ADA law we're taking that lead from legislative council and the other attorneys throughout the building we are moving as quickly as the legislative process and our budget allows us to to accommodate all of these needs and make sure that we're meeting people where they are so as Mike alluded to we are in the process of contracting with a third party professional sonographers and I look forward to having that service available in their future directly through us it is an expensive service that though it's something that we have to pay attention to over time the other piece is American Sign Language that's a service that we can obviously offer as we are right now quite readily and as far as language accessibility we don't have anything natively built into our website is for language accessibility but almost every single modern web browser offers the ability to translate using artificial intelligence into a litany of languages so I mean I haven't found a language not available yet now I obviously don't personally speak those languages so I can't personally speak to the quality of that that translation but if you use multiple translation services again artificial intelligence to kind of check each other they seem to be pretty good but we could always improve the one area of improvement that I think that we can continue to move towards when it comes to web accessibility and language access is how we post documents so anything that's native to the website built in line to the web page can be translated pretty readily but a document in pdf form would have to either be extracted downloaded and re-uploaded to a translation service or you can copy that text using our pdfs as you post them because we use ocr which allows that text to be searchable and readable by screen readers and you take that you upload it to another service and it would translate that using artificial intelligence as well that's a free service through most browsers again I don't speak the languages so I can't speak to the quality of those translations but it certainly is a step in the right direction compared to where we were in the last handful of years hopefully that's helpful to the discussion can you just give us a sense of just take our committee for example we need two and a half or three hours four days a week so that's how many four times three about 12 to 15 hours a week can you give us a ballpark figure of what it would take to financially to to do closed captioning and also ASL and then I guess the translation web that's that's a free service you just have to be on top of it and submit it sort so I let's talk to the card in ASL first that's something we can really talk about the quoted rates and these are the bulk rates and the cheaper rates if you will for cart services is $140 an hour that's per meeting and then you turn around and you look at ASL and might correct me if I'm wrong that's somewhere between $80 and $120 an hour depending on the service and there are minimums to be met so in some cases the one hour minimum and then depending on the contract there are potential for overages usually by the quarter hour even if you only go over a minute or two and so the cost can add up quickly if you look at the approximately 24 committee meetings that we have daily not including joint committee meetings and the one ops that we have out there say rules and things of that nature or caucuses so the cost can add up quite quickly if you look at the hourly content let me see if I can pull up quickly so I can get a quick figure for you pardon me so for example we have in the neighborhood of 10,000 hours of content on YouTube alone so that is just the last two and a half sessions at this point it's actually about two sessions if you look at the timeline because we started streaming to YouTube in about mid-march of 2020 so we have two sessions 10,000 hours and you can use that figure to quickly understand how much it would cost the legislature to provide both car and ASL services as far as the language translation goes if you're talking a website side as far as content access to content that is just based off of a free browser you do have to have access to to technology so with our libraries and such opening back up hopefully that helps prevent that barrier to technology and I'm not personally certain on what the process would be if there even is one currently standing for the legislative branch to provide a translated transcript if any to a requester that's something I'd certainly have to defer on and just to add to Kevin's earlier comment about the cost or the coordinating of the American Sign Language for a meeting that is more than two hours or more than an hour they will have to schedule two people like we have in this current meeting so because they take turns so that's twice the cost as we go meeting by meeting with your example senator white and for example today if we thought we were starting at two and we actually started at three yeah the legislative schedule is very unpredictable it is and when you asked about what could you do to help this process or to help us I think really deliberately scheduling these discussions or bills that would um naturally have an accommodation with them for a time that's not after the floor but more predictable and more controlled by you I think would be a good use of that scheduling process even though it is fluid you you really can't control the floor like today and so scheduling something like this wrapped in the floor makes it difficult right the problem the problem when you're if you're thinking about scheduling and when people have an interest we we don't know what issues our bills people might have an interest in it isn't just a bill or a comment conversation about language access I mean that's clearly there's an interest there but it may be um a bill about the judicial system or about uh licensing of particular it could be anything that be anything in all our committees anything in all our committees so we're talking about yeah that's and yeah go ahead so it um for a part of hearing the the youtube of our meetings is available 24 hours afterwards with a much better translation right so we have that at the moment so that is the most affordable thing for people if they're not testifying I mean if they aren't actively participating right today they are but if they are not actively participating the most reasonable way is for people to watch the youtube 24 hours later right so I won't speak to reasonable it's certainly available I'm sure there are many opinions on that senator Clarkson as far as whether it's a good quality translation or not or transcript or not excuse me it is certainly available approximately 24 72 hours after the conclusion of the live stream it is a youtube based service that provides closed captioning with either timestamps available uh or not if you want to take that transcript and a lot of folks make good use of it it's not perfect but it is far better than the zoom real-time live transcription service that we've used in the past um are currently potentially using in this case if folks are using it within the room as well I don't have it on my screen but I think I see it on the screen of the background here and so it's better it's good it's not perfect it does not replace a an actual person creating that transcript but it's a wonderful starting point and it's something that we've used successfully over the last couple of years to allow for transcripts to be produced a little more rapidly so I see uh dr Perron has a comment would you like to weigh in here Judy thank you bear with us while the interpreter unmutes herself yes I'd like to introduce myself thank you very much I am a deaf individual myself and I use American Sign Language and I just want to make share a message with you when the legislative in Massachusetts had this discussion it was very similar and the process was set up and then distributed and the discussion of cost of interpreters in cart for edgy every legislative session is not relevant necessarily you know when we're talking about the bills the impact it has on deaf and hard of hearing individuals automatically interpreters and cart services will be provided but not everything will request um American Sign Language interpreters and cart but unfortunately the website and all of the information there is not accessible to an ASL user so that system needs to be addressed and second of all when it comes to a public hearing where deaf or hard of hearing or deaf blind individuals you know would be attending yes you have to have interpreters in cart providers readily available it cannot wait it needs to be taken care of immediately or testimony so um no that you know that was just my experience in dealing with the state of Massachusetts or the Commonwealth of Massachusetts go ahead yes so um you said that it wasn't um available to um ASL users the the did or maybe I misunderstood you I thought you said that it what they um the translation services on the bottom weren't available to ASL users or did I misunderstand let me just read back for a second yeah if you don't mind could you clarify specifically what it is you're asking me about sure I thought I heard you say that um the the translation services were not available to not translation but the whatever you call that caption what captioning captioning was not available to ASL users and I'm confused by that yeah because we thought it was available for everybody okay now I understand your question thank you for clarifying so yes we cannot assume that all deaf individuals are going to be also fluent in English which would be the transcript on you know I definitely can English is the second language of mine but American Sign Language is my first language and it's more readily understood without having to interpret it into another language so for example there are going to be individuals who you know are not fluent in English and they would be forced to only be able to access the message through car and with that said then they would really not be able to understand you know the transcript from a car provider in written English American Sign Language is a first language that is distinctly different from English and therefore some users would absolutely need American Sign Language as an accommodation you're going to meet individuals that are going to prefer one over the other because there is a wide variety of language among deaf and hard of hearing individuals and I hope that clarified things for you oh sure and I think we certainly understand that that all people who use ASL are not English speakers um the English isn't their second language so that presents another problem yes exactly some deaf individuals like myself are definitely bilingual but again I still prefer to use you know my first language which is American Sign Language because I can I I think in process in my own native language so it's easier more readily available if it's provided to me in my preferred language which is American Sign Language so I have one other question of other people do you kind of move you should weigh in here but um the other question I have is when you were talking about Massachusetts one of the things that you said I think I've heard was that um the cost is irrelevant how was that and I I just um um cost is a big issue for us because we we have very limited limited funds and the legislative branch does not have um a lot of funds so I just wondered what you meant by costless irrelevant or it's probably should be irrelevant but it is relevant it isn't yes exactly the services are definitely going to cost and there are plans to be able to make the cost more efficient like for example providing American Sign Language interpreters for every single legislative session would be you know definitely not the best approach providing interpreters and car providers that would have a legislative session that involved a deaf or hard of hearing feeler issue but it would be very important to you know be able to communicate with you know the deaf community about when that's going to happen so the deaf community would be aware it could make a request but if there is no request then there's no reason to have to pay for and provide that type of service unless someone is specifically interested in it let's say for example there's a bill something to do with the legislative you know rules or whatever uh deaf people may not want to you know request an interpreter for that okay so you really are saying but again when it comes to providing testimony at a hearing you know where the first group you know that is where there's going to be you know a cost factor in those testimonies that those hearings can take two three hours yeah thank you um we uh a few years ago maybe four years ago now in this committee we worked on um the establishing the deaf and hard of hearing council or expanding it getting it reactivated and um we had an interpreter with us all of all of those times whenever we dealt with that issue exactly yes Mike you had your hand up oh sorry Mike did you have your hand up sure um just to dovetail on Dr. Perone's point that's why my relationship with Laura Siegel and Dale and the council you referenced is so important because we had a bill there's a bill in the senate now and senate health and welfare h266 regarding hearing aids yes companies and so because we know that Laura and I are able to work together to track it on the agenda planning process I'm able to work with the committee assistant in that committee to understand when it's going to be taken up and then schedule those services and then communicate to him or the chair please make sure that as you revolve your agenda this one stays put as much as possible and that coordination that collaboration about bills specific to this community is really how we can make the process most accessible to them and that's a reminder for this committee that it should always be on a Tuesday because that's the only day when we know when we don't have floor session in the afternoon so so sometimes on Friday we know we have a white day I but you have to schedule at 48 hours in advance we don't know what the schedule will be 48 hours in advance because the agenda is past yet the calendars printed yet so really Tuesday I see Kevin has his hand up Madam chair I appreciate it I just want to dovetail up what Mike was saying I think we're moving in exactly the direction that Dr. Perron was speaking about in making these services available by request but also with my coordinating with the deaf and hard of hearing community as he just mentioned so one of the things we're hoping to have up and available in some fashion by early next week would be a request form process on the legislative website it's going to start as bridging the gap if you will because we currently don't have it available on our website we're going to create an interim process we're going to quickly refine that to make it very accessible in no less than three locations on the website all very copious or very conspicuous easy to get to and we will make sure that we continue to leverage that process for all ADA accommodations and translation processes that we continue to learn about as we work through this process great great um any other questions right now around the ASL yeah Anthony I I don't want to in any way undermine the organizations that people that are already doing this work but I have to wonder whether it would make any sense for the legislature to have a signer on staff leave them all the time you know somebody who's a salary person who spends their time in the state house and is paying a salary as opposed to an hourly rate may I just tag on to that idea sure uh Anthony I think that we should use track the amount we actually use in the next year or two I think one of the key things would be is going to be track the requests and track how much it's actually used and I think if it if it's requested over you know over a certain amount I think that's absolutely a great idea I think that may be a little premature right now I agree I think you'd have to figure it out take it you also would have to have two people because um right I think I was tired well yeah it's very tiring I think it'd be a translator so you have to are an interpreter not as an interpreter um so yeah well I I mean like in my ideal world at some point pretty of one here you are asking people in a lot of different languages to keep track of how we communicate here how we communicate in government and I think eventually the state should have a staff of people who speak commonly requested languages or sign commonly requested languages um to help with not just retroactive requests or in the moment requests but proactively make videos about how to respond in an emergency situation you know something that is important for people to understand about a particular program I mean eventually I think our website should be full of videos where people are signing and people are also speaking languages that might not even have a written component that are very popularly spoken in the state right and I I agree with that I don't think there are probably our emergencies that the legislative branch addresses we're just talking today about the legislative right no I just think it's better if we borrow a person you know yeah you're going to get scale if we have one person or are you two people in the state and say oh can they help right now you know but I think there's enough work in all three branches of government to keep people busy with ongoing things not necessarily on-demand interpretation is is that um can I this is right now just put you on the spot and that's something that you have been thinking about in your language access program yes um good afternoon system my name is very shortly oh this isn't a hearing well racial equity director for the state anyway um yes this is something that we are thinking about for the language access plan it is for legislation for the purposes of the legislative branch um what you're really looking for when you think about language access is being able to have um oral interpretation during testifying in committees uh oral interpretation for being able to answer constituent questions or other inquiries that come directly to the legislature uh oral interpretation for people who want to have meetings with legislators and then you want to think about written translations for website materials um and that's going to include things like the meeting agendas information about bills instructions on how to engage in this process which is all stuff we've been talking about and then you want to make sure that you're thinking about signage for wayfinding when people come to the building so when you're thinking about which staff whether to employ staff and how many and who they should be and where they should sit um you want to think about that having a single point of contact is going to be really helpful i think the senator romp himself point should it be someone who's employed directly and exclusively by the legislature or should it be somebody who has a focus that extends across multiple branches we'll probably get um we'll probably get more ability to be nimble and flexible if we have somebody who interacts with all three branches however you'd have to work out the details um about that that level of scope and make sure that they are supported right one person it would be a large workload for the one person you want to make sure that they also are doing things like coordinating the hiring or contracting of services um to the extent that mike and kevin may want to offer some of that um coordinating with sergeant arms for visitors and that's gonna um also connect with some of the a da work that we need to make sure that we're doing in terms of physical accessibility to the building um so yes these are all things that we are thinking about for a unified statewide language access plan but you know i think that if we're talking about employing people on staff it's good to have a person it's better to have two but i mean if we have two separate hearings of three hours each that really means four people right and that's just for asl we're not even talking about other spoken languages so um i think that we really have to understand and then and again that's just one branch of government that's not even judiciary which may be holding hearings that day as is their nature or anyone in the executive um so a staff we would really need a small militia of people equipped to do this in in a number of different languages thanks that's um i mean i'm thinking about uh how we how we translate not not how we interpret um but how we translate the documents and the things that we do and surely we should have some ability to to at least translate um have some translation on the how to how to access how to use the the system i mean how what what the process is that people can understand and then have a translation of the summaries of the acts once they're done some translating the the uh the bill itself is pretty meaningless because most people can't understand i mean it is so legalese that but the summaries that are done are really good and so yeah ideally our webpage would say like have an accessibility button you could click on and then it would take you to a page that shows you the ADA at designee is for the legislature how you access interpretation um like how you make requests any other pertinent information that that's what colleges are doing that you know like i think other institutions have have gone ahead of us in terms of a landing page where you know that if information should exist it would be there and if it's not there it probably doesn't exist but people shouldn't have to go fish around to figure it out yeah that was um kevin mike did you hear and i see damien is with us now also i did there is um is that something that at some point could be possible to have that on the website so that there is just something i just yeah so um we're certainly moving in that direction that's what we're trying to establish as we speak we're building that page out as we speak as we're focused primarily on the operational concerns right now making sure by those services to the folks that are requesting them in real time as we speak and building that page in the background with the access to these resources i believe mike and damien have some specific information about what that ADA designee might look like but we're certainly coordinating on an operational level to make sure that we can provide the services in a timely manner so we'll ask mike and damien if they have and we know that you've been working really hard on this and taking this very seriously so we're we're pleased that this is something that is in the front of your minds along with all the other things you have to do so um mike or damien do you want to weigh in on what you just said so what i can speak to is you know we're aware of the requirement that we have a designee and mike and the sergeant at arms office have been coordinating about how requests for an accommodation are handled with requests related to committee services going through mike and then requests related to physical access to the building going through the sergeant at arms this is it's definitely a work in progress at this point but i i know mike and kevin have been doing a huge amount of the actual heavy lifting on this behind the scenes just in terms of getting things stood up signing contracts getting bids on services from outside providers etc um so but from the ADA perspective the the key is that we're able to provide that access and having that point person who can not only handle the request but also can receive a complaint if we don't provide the access and can help evaluate the request for accommodation and direct them to the right place in terms of making sure that whoever needs to be talked to to coordinate access is talked to so that we can can take those steps quickly that's definitely something i think mike and kevin have been working very hard on to to implement at this point thanks mike and um thank you damian and thank you to kevin i also want to really thank laura seagull and the folks at tail they've been a real important resource in my learning about this as we've moved forward so um we're hopeful to get there thank you laura and um we try to improve each time we offer the experience great great i mean well i'm i'm real happy that you've been working on this and do you mind if i say something laura's asking oh please yes please sorry laura hi yeah hi everyone my name is laura laura seagull and i'm a director here at the deaf and for a deaf and hard of hearing and blind services i'm here at dale and i just wanted to add uh to dr perones comment dr john perone his comment that he had earlier about asl and captioning i just wanted you to keep in the back of your mind that um not everybody who uses sign language can rely on the captioning so um for example the av system the audio visual system is another option um for a heart of hearing people and there are other assisted technologies that can help depending on needs so there are a lot of options that are out there and i just wanted to um let you know that they're there and not to only consider just sign language interpreting services and captioning and the other thing that i wanted uh for you to consider um having to do with document translation i i do have a colleague who's the director of deaf uh of blind and visual impairment and and they work underneath dale and they have um they might be able to um give you more um insight to how to how to provide accessibility for low vision or are people with limited sight good thank you and i i see both mike or kevin and davian have their hands up but i'm going to say that um if you're working closely with laura then doing the thing that you should be doing on the right thing so um i saw kevin's hand go up and then i saw davian so kevin uh thank you um so i i laura's uh comments uh triggered another thought that i think i failed to mention and it's about heart of hearing services so assisted listening and that's another area that we have expanded on over the last couple of years we currently have a couple of mobile carts that provide assisted listening services that was currently used today actually in house government operations in room 11 where we're able to tap into the audio visual system to be able to provide that hearing assistance to those that require it in a handful of different ways and i'd be happy to discuss that if you want as far as how many different ways we can provide it but a hearing assistance is available within the general assembly by request oh great great davian yeah i just um to build off what laura said is uh one thing that's worth remembering is that the accommodation uh goes to the individual with the disability and so different people have different needs and different preferences uh and one thing that might be helpful for us is to get um is to work with an outside expert to get an audit of what we have and what we can improve on here uh because you know i i i read the law and but i i don't know a lot about providing accommodations um and you know kevin and mike have been doing a huge amount of work on this but we're all sort of learning on the fly so bringing in an expert to help us identify weak spots uh and areas where we can improve i think would be particularly beneficial um because from from my perspective you know it's the the next challenge is going to be the next uh accommodation need that we haven't anticipated and so it's it's just a question of that and having a fresh set of eyes that really understands the potential needs here and can make recommendations would probably be a very beneficial and proactive step to help improve access to all people in the building thank you thank you i see amanda has your hand up amanda yes hi thank you so much amanda garcesa with the vermont human rights commission and i am so happy that this conversation is happening i do um just want to add that some of the work that we've been trying to do and talk about around the language access for our incoming refugee communities as well um it has to do with quality control also um so about you know now having google translate our so i think those are further conversations that we need to look at because i think a lot of the agencies are saying okay well just put google translate and everybody can access it and we know um for a fact that that is not accurate in many of the languages maybe some of the languages is Spanish might be really close enough and the same as the caption and so i know that when i speak because of my accent the cap the caption is often wrong um not accurate so having this it you know live person that can do that is really great for the communities that do uh read the the transcripts of the caption so i just want to put a plug around quality control that now all the translators are the right translators for some of the things that we need um and specifically when we are trying to pass legislation that have to do with BIPOC communities that we really look into what is the type of translations we need and uh for to give accessibility to those who speak english as a second language or who don't don't speak english yet so i just wanted to add that that's something to think about thank you and i want to say i'm at that it isn't the translation that happens on the bottom that just happens by the computer believe me your accent might be misinterpreted sometimes but so is everybody else is also misinterpreted yeah they misinterpret almost everybody so i see dr chrome put his hand up you're muted yes just a brief comment i wanted to add um to what you were saying Danielle had suggested someone on the outside come in and do an audit i think that's a fabulous idea in my reason for that is moving here from massachusetts five years ago now you know i did see a very big difference when it comes to access you know i mean it was set up you know some some was behind the times a little bit but it was great to see the improvement so i think if you were to have someone come in um and include the stakeholders in the meeting you know so meet with the community to get a pulse of what it is their experience has been with the legislative process so i think it would be very worthwhile to hear from the members directly from the communities that you're trying to accommodate thank you that yes i believe that's true so i want to ask um davian you suggested that it would be good to have somebody from the outside is this uh somebody who really understands interpreting and translations to come in and and just do an audit of what we have and what we're doing well and what we could improve on and where we might be going next is that are you talking about a position or are you talking about consulting with somebody or what the ladder consulting with someone from uh from outside um so and you know i i'd like to think of this as uh sort of uh proactive and preventative so reaching out to someone from outside who has expertise to come in and review procedures and services that we have access to in the building and identify gaps uh whether it's language accessibility but it could also be related to things like physical accessibility in the building which um has also been highlighted as a challenge and uh in other instances so okay but yeah this this is not specifically a position in the legislature at some point in the future um you may want to consider a designated ada position for the general assembly but that's a that's a very different conversation i understand so well i can tell you that for having been had to use a wheelchair for the last two weeks up here um this building is not particularly friendly to people in a wheelchair there are some and brian colmore can tell you because he was pushing me around and some places you had to take a real run at in order to get over the bumps and and some places the doors are so um so narrow that if you were doing your own wheelchair by the you know on the rails by the wheels you wouldn't have been able to get through the door so yeah it's it's not particularly usable yeah the the house discrimination prevention panel heard similar testimony from uh advocates with mobility disabilities and uh about a month ago yeah so is this a um is this something we need to ask if it can be in the budget to have not a position but to to that you you can contract with somebody to come in and do that kind of an audit and maybe working along with laura and susanne about how who and where and how to get the person i mean i'm sure there are people out there who are really smart about this it's a good question i'm not sure um i i don't think i would be the person to contract with them but um that it might go through the for example the sergeant at arms office because they have the role in maintaining and managing the building um but uh some of the folks on the call here may have a better sense of what that looks like um but it's if not i'd be happy to look into it for the committee and get back to you but it may be something that we need to set aside money in the legislative appropriation for right that's what i was wondering says i mean do you have any idea what something like that would cost um we are working to find out what it would cost our research and policies is um analysts is looking at that what i was going to say is that um there may be an opportunity to work with some federal partners on this i know that um opw dd oh is that is that federal or am i confusing that with a different state um i will be looking into whether we can get an audit done um using federal channels if that's something that we would like to do another option is we have some partners we have been getting to know particularly from the national conference of state legislatures and from a couple of coalition office and member of that i think would be helpful here because they can bring a legislative lens from other jurisdiction so i'd be happy to follow up with some more details about how they've accomplished that on their end that would be great thanks Dr. Perron i see you have your hand up yes first of all by apologies i think i spelled your name wrong i said daniel and it's damien my apologies and then also uh i i suggest you could um contract with a person her name is carol richardson that is an ada coordinator in massachusetts who's responsible for all of the legislative um accessibilities issues you know and is deafblind themselves and coordinate um ada services for over 15 years a phenomenal person who would be able to do that audit for you so that's a contact person i would suggest so i'm going to suggest that you send that um contact information to to susannah and also to our committee and we'll um make sure that okay yeah we'll do thanks does anybody else oh sorry does anybody else have anything they want to um weigh in on here linda i see you're here and you haven't said anything yet but would you like do you have anything to add i have no idea where you guys at so i pass thank you oh okay thanks um anybody else have thoughts they'd like just yes brian thank you madam chair so i'm just wondering i don't know whether it's a question for kevin or damien or mike but you the funding that we've used so far in terms of setting something like this up today has to come out of the legislative budget do you get a signal or some sort of uh information that says you're getting near you know a danger point in terms of spending too much money or is it sort of open and very flexible i don't know if i'm asking this the best way but is someone eventually going to say hey wait a minute you can't keep doing that because you're over budget i guess that's what i'm asking uh so uh mike i'll i'll field this one to start and you can backfill if necessary um so senator colmore we don't have a direct appropriation within the legislature uh that i'm aware of at this point for accessibility or um uh translation services uh i believe we are taking it out of the legislatures overall appropriation managed by the joint fiscal office uh we are very much intending and will track all the expenditures uh for these services over the uh the coming months and as they go forward that's part of uh our rollout process for the uh request forms okay thanks god so actually it would be great if susanna if you are able to find any information if you have um if we need to try to put something in the budget um we we will be happy to do that but if we can have some some idea of what we might need to put in there to continue this process and maybe go farther whatever whatever it is um if you can you know you find out that ncsl and the federal government can help us with this much but we're going to need to have some matching money or whatever that would be great if you could do that yes i would be happy to do that but i do just want to stress that it is our goal that this be genuinely statewide so the money the money package that we're going to submit to you is going to cover all three branches of state government so i want you all to be prepared for that okay yeah okay got it thank you dr pram oh my apologies i forgot to take my hand down well i had nothing more to add thank you we usually ask if that's an old hand or a new hand does anybody else have anything they'd like to add here any more questions from the committee i so i'm i'm going to say to damien and mike and um kevin that you've been very helpful and and um helping us understand what you're doing and where you're going with this and and the concern that you're showing around this and working with dale and other people like laura and other other people and um i want to thank everybody that came and maybe what we'll do is right at the end toward the end of the session we'll just have a check-in and see where we are i think that sounds great one thing i'd like to know so i i assume in addition to massachusetts there are other states that have addressed this issue and have have come up with some solutions just be curious to see i mean we're much smaller states than massachusetts but it would be interesting to see what their budget is for this and how it's you know what they've spent the last since it's been uh as provided in massachusetts legislature how much it's been used and what they're spending on it and i do see susana's hand up thank you i did just want to add one more piece which is that as we think about how we provide language access in the legislative process we also have to remember language access in the outgrowth of the legislative process and specifically i'm thinking about one in particular the bipoc is convening sessions we had heard from the vendor early on concerns that there wasn't enough money built in for translations and because of the runway and timing and budget process we ended up not augmenting that figure but as we consider legislation that requires any kind of public engagement component it's really important that we build in sufficient dollars to make the same level of accommodations that we're talking about here in any of the public processes that we're prescribing as well thank you anybody else so we'll try to schedule um just to check in um later on in the session just to see where we are and um see if we need to put anything in the budget and um yes and alice yeah and laura would you be kind enough to send us what the statistics are because i because this i i i'm not sure where my notes are for but i think it'll be great if we started to add put in our files the statistics about the deaf and hard of hearing in the in vermont and stuff any any statistics you have on this community would be great particularly as it's changed sadly so much yeah i'll be sure i'll be able to send that um that would be great because sadly those numbers have changed sadly with the with the demise of the austin school yeah and and how i mean yeah i mean how many are mainstreamed in our schools how many are getting you know are working right i don't know the whole statistics on on the deaf and hard of hearing in vermont if you have it unfortunately i wouldn't say i have everything um that you're asking for but i'll be i'll go ahead and gather what i have and and over to you perfect thanks oh i like that thank you and thank you


Hi and welcome to the program analysis course. In this lecture, I will introduce data flow analysis, which is one way of formulating static analysis problems. It's probably the most popular way, and there are many, many static analyses that are formulated as a data flow analysis. What I'll do in this lecture is to introduce the concept of data flow analysis. I'll then show a lot of different examples of data flow analyses, and I'll explain the conceptual framework that ties together all these examples. The lecture consists of six videos, and this is the first of them. So let's get started by having a look at the big picture again. So in the introduction of this course, I mentioned that there are two kinds of analysis. Static analysis, where the source code is analyzed without really executing the code, and dynamic analysis, where you execute the code and while the program is running, some analysis is extracting additional information about this execution. Now data flow analysis, the focus of this lecture is static analysis, so we are not executing the code, but instead the analysis reasons about the source code and tries to reason about the different behaviors that the code may have if it gets executed. There are different ways of formulating a static analysis, and data flow analysis is just one of them, but it's probably the most popular one because it's a very powerful way of expressing how to reason about the behavior of a program. Now here's a one slide summary of what data flow analysis is about. The basic idea is that we are looking at the program through its control flow graph. So this graph that has notes for the different statements in the code and edges that tell us that one statement may be executed after another. Now what a data flow analysis is doing is to propagate some kind of analysis information through this control flow graph in order to compute an analysis state at each program point. So in every statement we want to know what the state of the program here could be and there are different ways to define state depending on what you want your analysis to actually compute. Now in order to enable the analysis to do this, so to propagate this analysis state through the entire program, we need to define for every statement how this kind of statement affects the analysis state. So there will be some way of expressing that if you reach this kind of statement then the state that we're interested in will be changed like this or like that. One interesting aspect of programs is that they have loops, so there may be things that occur repeatedly and often you do not know how often they may occur, at least not statically. And in order to handle this challenge data flow analysis is iterating until a so-called fixed point is reached, which essentially means that the analysis state does not change anymore even if you consider more executions of the loop. You'll see examples of all of this in the rest of this lecture, so this was just a very brief summary so that you know what to expect. Here's a brief outline of this lecture and the six videos that it will consist of. So in the first video, this one that we're currently in, I'll start by giving a first example of a data flow analysis, which is the so-called available expressions analysis. You'll see in a second what this really is. After this example, I then explain some of the basic principles behind what you've already seen in the example. And then I'll give more examples, which are essentially more data flow analyses that are all defined in pretty much the same way, but for different analysis problems. Then we look into one interesting aspect of computing the actual analysis state at every program point, which is how to solve the so-called data flow equations and the data flow problem as a whole. Then we'll have a brief look into going beyond just analyzing individual functions, which most of the lecture will be about by turning from an interrupt procedural to an interprocedural analysis. And then at the very end, I'll talk a bit about so-called sensitivities, which tell us how sensitive the analysis is to particular aspects of the code and basically gives us a feeling for how precise an analysis is in terms of modeling the actual behavior that may happen at runtime. All right, let's get started with one example of a data flow analysis. And this will be the so-called available expression analysis. The goal of this analysis is to compute for every point in the program, so for every statement, which expressions must have already been computed and are not later modified by the program. So why do you want to do this? This can be very useful, for example, to avoid recomputing an expression. If you know for sure that when you reach this point in the execution, a particular expression has already been computed and it has not changed when it reaches this point, then you do not have to recompute it again, even if the code actually asks you to recompute it, but you can reuse the previously computed result. And compiler optimizations are doing exactly that, so when compiling the code, they are trying to optimize it by avoiding, for example, to recompute expressions and sometimes this is done based on this kind of analysis that we are looking here, the available expression analysis. Let's make this more concrete by looking at a little bit of code. So here we have an example of JavaScript code, but the language doesn't really matter. And what it does is to compute some expressions, a plus b and a times b and then stores the results into some variables x and y. Then we have this y loop that checks some condition and then in the y loop overrides the values of a and x. Now in this code, there is at least one expression that is available every time the execution reaches a particular point in the program and this is this a plus b expression. So every time we are reaching this conditional of the y loop, a plus b has already been computed and the values that are required for this computation, namely a and b, have not changed since the last time the expression was computed. So one way to get to this conditional is when we come down these statements or when we're basically reaching the y loop for the first time. In this case, a plus b has already been computed here and then a and b do not change before we reach the y loop. The other way to reach the y loop is by going back from the loop body to the conditional again. And in this case, a plus b has been computed here and afterwards a and b do not change before we reach this conditional. So again, this shows that every time the execution reaches this place, this expression a plus b has already been computed or to use the terminology of the analysis is an available expression. So this is the kind of information that we would like to compute, of course, also for more complex examples. So how can a data flow analysis compute which expressions must be available at a particular point in the location of the code? So the way this works is by using so-called transfer functions. So these functions are taking a statement and then tell you how executing the statements affects the analysis state. And in this case of the available expressions analysis, the analysis state means the set of available expressions. So what the transfer function is going to do is to tell us if you execute this kind of statement, how does this affect the set of available expressions? And to do this, the two functions that are defined, namely the gen function and the kill function, which tell us basically things that are generated and about things that are killed. So what the gen function does for our available expressions analysis is to tell us what are the available expressions that are generated by executing a statement.  So you can think of these two functions as two sides of the same metal, where one is basically adding things to our analysis state and the other one is removing things from the analysis state. And in this case, things means available expressions. So let's define these two functions, gen and killer. Let's start with the gen function. So the gen function just as the kill function is a function that takes a statement and then for the case of an available expression, analysis returns a set of expressions. So precisely if a statement, we say that a statement generates an available expression E. So this expression E will be part of what is returned here by the gen function for a given statement. If this statement evaluates E, so it's computing the value of this expression. And if it does not later write any variable that is used in E, so it's not overwriting anything that could have changed the result of computing this expression E. And if a statement does this for some expression E, then this expression E is in the set returned by the gen function for that statement. And otherwise, if there is no such expression, then the function returns the empty set for the statement. So as a concrete and very simple example, let's consider a statement like this one down here where we have some variable X that is written with the result of multiplying A and B. And because in order to execute the statement, the code is computing this expression A times B, gen of this statement will contain the expression A times B. The inverse of the gen function is the kill function which tells us what available expressions are not available anymore after executing a statement. So again, kill takes a statement and then returns a set of expressions. And it does this as follows. So if a statement, we say that a statement kills an available expression E, if the statement modifies any of the variables that are used in E. And the reason is that if you change any of the variables that are used to compute an expression, then the result of evaluating the expression may change and therefore you cannot consider this expression to be available, meaning pre-computed if you want anymore. So if a statement modifies any variable used in some expression, then this statement kills that expression. And otherwise, the function again returns an empty set. So if it, for example, does not modify any variable, then it also doesn't kill anything. As a concrete example, let's say we have a statement like this, where 23 is assigned to A. And this statement would kill, for example, the expression A times B. Because it writes to A and by doing this, it may invalidate this result of the expression A times B. So kill of that statement will include this expression. So let's illustrate these ideas using our example again. So what you see here is the same example that you've seen earlier, this Y loop that is surrounded by some statements that write into X and Y and A, and the first thing we always do in order to perform a data flow analysis is to write down the control flow graph of the code, simply because this is the structure that the data flow analysis is working on. So let's do this for this example. So we always have an entry node and an exit node in every control flow graph, which basically tell us where the execution starts and where it eventually ends. Then after the entry node, the first thing that happens here is that we have this assignment of A plus B into X. So we have an edge here because it always happens immediately after we enter this piece of code. And then we have another assignment which writes the result of A times B into Y. So far so good. So the next thing that happens when you execute this program is that we'll reach the Y loop, which means we will reach the conditional of the Y loop. So what the program will do is to compute the result of A greater than A plus B. Sorry, Y greater than A plus B. So this happens next. And then there are two options. One is that we immediately go to the exit node because if the conditional is wrong, then we are at the end of the code and that's it. And the other case is that we're entering this loop and then we'll have these two statements executed in the loop, one that decrements A and then the other one that computes A plus B and writes the result into X. And once we are done with the second statement in the loop body, what will happen is that we go back to the loop body in order to check again whether we should execute this loop another time. So now the goal of an available expressions analysis is to reason about which expressions are available at a given program point and it does that for also called non-trivial expressions. So that does not include literals like one or two or three and it also does not include single variables like A or B, but it includes everything that is more complex, for example A plus B, A times B and so on. So for our example program here, let's have a look at what the non-trivial expressions are that we have in this code. So only those expressions that really occur in the code are relevant because the others anyway are not computed and in this case there are three of them, one is A plus B because that occurs in three different places here, another one is A times B, which is computed once and then there's another one which is A minus B. So these are the three expressions that we care about in this available expressions analysis. So next we can look at the transfer functions for each of the statements that we have here in the code. So let's just do this. So in order to do this, let me just give the statements some numbers so that I can refer to them more easily. So let's say this is statement one, this is statement two, this is statement three, this is statement four and this is statement five and then I'm going to write down a table where we have some statement s and then we write down the result of gen of s. So basically what are the expressions that are generated by this statement and then we also have a column for kill of s which will tell us what available expressions this statement is killing and we're going to do this for all of our five statements here. So one, two, three, four and five. To do this, let me just show you again the definitions of gen and kill and let's start with gen. So gen is telling us which available expressions a statement creates because it evaluates this expression and does not later write in the same statement to any variable used inside the expression. So let's have a look at the first statement. So this first statement is evaluating a plus b and it's not writing to a or b which means it fulfills this condition. So gen of s contains this expression a plus b. The result of gen of s and also kill of s is always a set because there may be more than one expression that is generated or killed but in this case there's only one name with this expression a plus b. Let's also have a look at what is killed in this statement. So a statement would kill an expression if it would modify any of the variables used in the expression. So now our statement one is modifying variable x. If we look at the non-trivial expressions then x does not occur in any of them and that essentially means that this statement is not killing anything that is relevant to the analysis. So this so kill of this statement is the empty set. Now let's do the same for the other statements and let's again have a look at the gen function now for statement number two. So statement number two very similar to statement number one is computing an expression namely a times b. It's writing to a variable but this variable does not occur in any of the non-trivial expressions so the kill set is again the empty set. Statement number three is also computing one of our non-trivial expressions because it's also computing a plus b. So this is put here and again it's not writing or modifying any variable so the kill of statement three is again the empty set. Now statement four is slightly different because it is not generating any of our non-trivial expressions. Now you may wonder why because after all it's computing a minus one but if you carefully look at the definition of the gen function then you see that it's not only about evaluating an expression but it's also about not later writing to any variable used in this expression and in this case because statement four is also writing to a. The fact that it has computed a minus one before doesn't really matter anymore because a minus one may actually have a different value after statement four has executed and therefore the gen set of statement four is the empty set because there's no expression that is computed here and not later modified. Let's also have a look at the kill set of that statement so because that statement is writing to a it's actually killing all three of our non-trivial expressions because each of these non-trivial expressions contains a meaning that once we have executed statement four whatever we have pre-computed before about these expressions may not be valid anymore and therefore this is part of the kill set.  So this syntactically looks exactly the same as statement one which means that the gen and kill functions also have to be exactly the same as in statement one and this is the fact that this statement five is generating the available expression a plus b but it's not modifying any of the variables that occur in the non-trivial expressions and therefore the kill set here is the empty set. So this table tells us all the transfer functions for all the statements that we have in this example and then using these transfer functions we can then perform the actual data flow analysis. Now that we have defined the transfer functions for the individual statements in order to really compute the state at every statement we need to propagate this information through the program and in this case that means we want to propagate the available expressions. To do this for this example we start with the assumption that initially there are no available expressions and that makes sense because when you start executing this piece of code then nothing has been computed yet so there cannot be any available expression. The analysis that we're going to use here is a so-called forward analysis we'll see in the next video what alternatives exist but this basically means that we are propagating the available expressions in the direction of the control flow so basically forward as the program is executing. So not what we're going to do is to compute the available expressions at the exit of each of our statements so after executing each of these statements depending on three things. One is the available expressions that are incoming to the statement so basically the available expressions that exist before we're entering the statement. From this set we are removing everything that is in kill of s so everything that this statement is killing and then we add something again and that is all the available expressions in gen of s which we're adding to the set of available expressions that are available at the end of this statement s. Now there are still two questions left to be answered and this is what happens when control flow is splitting or merging so when control flow splits for example because we have a branch or a loop and we may enter the loop or may not enter the loop then what we're doing here is to propagate the information along both ways so in this case it means we take the set of available expressions and no matter which way we go we know that these expressions will be available in either of these two ways and then when control flow merges for example because two branches are merging or maybe because we are at the end of a loop then what we do here is to intersect the two incoming sets of available expressions so we take the intersection of them and the reason is that if control flow may come from here or may come from there and we maybe only know that an expression is available in one of these two options but not in both of them then we cannot be sure that this expression is really available after the control flow has merged so we only keep what is indeed intersection so we only keep the available expressions that are in both of these incoming sets. So let's do this a little bit more formally and the way we'll do this is by writing down the so-called data flow equations which essentially tell us what is the analysis state at the entry and at the exit of every statement so in this case of the available expressions analysis these equations will tell us what expressions are available at the entry of every statement and at the exit of every statement. So I'll denote this analysis state with AE for available expressions and we compute these two sets for every statement AE entry of S which corresponds to the available expressions at the entry of S and then we'll also compute AE exit of S which corresponds to the available expressions at the exit of the statement S. So let's write down these equations for all the statements that we have in our code here and let's get started with statement number one so AE entry of statement one will be the empty set and this is by definition because we have said that when we start executing this code no expression is available yet and therefore we say this set must be the empty set. Now all the other entry sets of the statements are defined in terms of the exit sets of the statements that are executed just before them so for example for AE entry of statement two because statement two if you just go back to our control flow graph statement two always executes after statement one right and therefore we know that AE entry of two must be the same as AE exit of statement one. Let's have a look at AE entry of statement three so just going back here if you look at statement three that one then you'll see that there are actually two incoming control flow edges one from statement two and one from statement five and what that means is that um AE entry of three is the intersection of AE exit of two and AE exit of statement five so we take whatever comes in from either of those and only if an available expression is in the intersection of these two sets then we keep it for AE entry of three and then for AE entry of four and five we just have to consider one again because whatever yeah the only thing that happens before statement four is statement three and the only thing that happens before statement five is statement four and in terms of data flow equations that means that AE entry of four is AE exit of three and AE entry of five is the same as AE exit of four so now we have defined the entry sets for all these statements let's also look at what set of available expressions exist at the exit of each of these statements so we basically have to write down AE exit for each of our five statements and looking back at what I had said on the previous slide so here I had said that for every statement as the outgoing available expression so AE exit are the incoming available expressions minus everything that gets killed by the statement plus everything that gets generated so now let's use this here for our example so for statement number one that means that AE entry sorry AE exit of one is equal to what comes in so AE entry of one and then we have to we would remove everything that gets killed by statement one but looking back at this table statement one doesn't kill anything and then afterwards we add everything that gets generated by statement one so in this case we have to add A plus B so basically that means we'll take the union of AE entry of one and the set that contains A plus B now next we can do the same for all the other statements so let's continue with AE exit of two so this will be AE entry of two minus everything that gets killed by statement two going back here we see that nothing gets killed by statement two and then plus everything that gets generated by statement two so plus this expression A times B all right now statement three looks kind of similar so we have AE exit of statement three which is AE entry of statement three minus everything that gets killed which is in this case nothing plus everything that gets generated so plus A plus B so we take the union with A plus B and now the next one is the perhaps most interesting one because it's that loop condition so AE exit of statement four so the available expressions after just after evaluating the loop condition is whatever is available before we evaluate this loop condition so AE entry of four and then minus everything that gets killed so minus all of those plus everything that gets generated which means in this case plus nothing so in this case we are removing from this set AE entry of four everything that is killed so A plus B A times B and A plus one or sorry this should actually be A minus one okay so now this was statement four let's do the final one so AE exit of statement five and again this is AE entry of statement five minus everything that gets killed statement five is not killing everything anything so minus nothing plus or union of A plus B because this is generated by statement five and now with these equations we have defined the equations that need to be satisfied by the final state of our data flow analysis so now these equations depend on each other right so we cannot really immediately see from them what the concrete available expressions are at the entry or exit of a statement and in order to get really the concrete set of expressions at the entry and exit of each of the statements we need to compute a solution of these equations we'll see in one of the later videos how this is done so what I'll only show here is the result of computing the solution so for every statement we'll write down AE entry of that statement and AE exit of that statement based on the equations that you see on the left so for statement one what we'll get here is that the entry set is the empty set and the exit set is A plus B so far so easy so for statement two the entry set equals the exit set of statement one so in this case this means it's this expression A plus B and then if you look at the equation that defines AE exit of two you'll see that it should also contain the expression A times B in addition to whatever was there at the entry of statement two which means that AE exit of statement two contains A plus B and also A times B now let's move on to statement three so statement three has as its exit set only A plus B which may seem strange at first because the exit set of statement two contains both A plus B and A times B but because statement three also has another incoming edge from statement five and because statement five is actually as we'll see in a second only containing A plus B in its exit set it means that we take the intersection of the incoming sets and that results only in A plus B but not in A times B next let's look at statement four so statement four has as its entry set A plus B because that's what comes out of AE exit of three and then because statement four is actually killing all expressions that we have in our set of non-trivial expressions including A plus B the exit set of statement four is the empty set and then statement five is getting this empty set as its entry set but then it's also adding something namely A plus B and this is why at the end A plus B is in the exit set of statement five so let's just go back to the beginning of this video where I showed you this example and I said that every time the execution reaches this point we know that A plus B has already been executed and now if you look back at our table that shows the solution of these data flow equations then you'll see exactly the same piece of information namely that AE entry of S contains A plus B which means exactly what is written here in yellow so at the time we reach this statement we know that this expression A plus B has definitely been computed all right so now in order to test yourself to understand whether you really understood this idea of data flow analysis and in particular this idea of available expressions analysis here's another piece of code where as a little quiz my question for you is whether this expression x minus y is available when entering this very last statement of the example so now I encourage you to actually stop the video at this point and maybe think about it yourself and if you want you can even write down all these equations that have written down before because then you can really check whether you've understood these ideas now after you've hopefully done this yourself let me show you the solution so the answer is no x minus y is not among the available expressions when reaching the last statement and the reason is that there is one control flow path which comes from this body of the y loop that eventually reaches this last line and in this body of the y loop the code is actually writing to this variable x which means it is the statement this statement here is killing variable x and as a result because we take the intersection whenever control flow merges again this expression x minus y is not available for sure when reaching this last line all right and that's already the end of this first video on data flow analysis so what I've done in this first video is to show one example of a data flow analysis namely the available expressions analysis and what we'll do in the next video is to look at the principles that are actually underlying this whole idea of data flow analysis and which you know that you've seen an example hopefully can easily understand thank you very much for listening and see you next time


Item Number – SCP-460 Object Class – Euclid Special Containment Procedures – SCP-460 is to be tracked and observed by Mobile Task Force MOU-13 while containing any serious incidents as they occur. All relevant information is to be transmitted, encrypted, and backed up at Site-19. During any major ectoplasmic event, all personnel are to evacuate a minimum of 5 miles from SCP-460's current location. Description – SCP-460 is a free-floating mass of cumulonimbus with an average diameter of 3.5 km. Normally, SCP-460 takes the form of a large ring and is unaffected by standard meteorological conditions that a cloud of its shape and size would be. The composition of the cloud itself is typical, with frozen water, H2O, making up 98.7%. However, the remaining 1.3% of the cloud consists of a highly active form of ectoplasm, which lends to SCP-460's unique properties. Typically, SCP-460 is dormant, floating at a speed generally relative to the current wind speed of the surrounding area. Occasionally, SCP-460 will halt its movement, usually over an area of moderate population. Once completely stationary, the ectoplasm of SCP-460 will condense and fall as a viscous rain, causing the spirits of the recently dead to manifest in a physical form as ghosts. This rain occurs as a light shower after the main downpour with only intermittent pauses. Normally, only subjects who have died within the last year will manifest, with only the rare exception. Of note is that not only humans are capable of returning as a ghost, but also all sentient life that possesses a purpose for their manifestation. Spirits that manifest in this have complete autonomy, while SCP-460 remains stationary and will revert back to whatever nature they possessed in life. The actual manifestation, however, varies on a case-by-case basis. Most subjects who return from a nonviolent death are often passive and appear much like they did in life. Variations occur mostly among the spirits of those who suffered a violent end, with many victims of crimes, such as murder and rape, manifesting as ghostly avatars of justice. It should be noted that deaths caused as a result of SCP-460 would result in further manifestation. Over time, the ectoplasm making up individual manifestations will evaporate and rise back up to the main body of SCP-460. This may take anywhere from several days to a few weeks, depending on the temperature and general humidity of the area. Once SCP-460 starts moving again, any remaining manifestations are instantaneously vaporized and the cycle starts anew. After becoming mobile, SCP-460 will wander for an indeterminable amount of time, with no pattern or common habits. Discovered in f***ing near Siberia, where reports of a literal ghost town had begun to circulate into the press at large, the number of ectoplasmic manifestations caused by the long-term stay of SCP-460 was overwhelming and due to the violent nature of the now discontented spirits, a large military operation was required to secure the area. The surviving personnel now make up what is now Mobile Task Force Move 13, aka Ghostbusters. SCP-460 was immediately classified as a keter-class SCP, with all research diverted into predicting its movements to avoid further incidents. Addendum. Due to the outcome, or lack thereof, of incident 460-B and 460-C, item has been reclassified as Euclid. Observation log 460-A. All relevant reports from Move 13 are to be catalogued and formatted as follows. Subject. Amy Glasgow, formerly a housemaker and mother of three. Date. Expunged. Expunged. Liverpool. Cause of death. Auto accident. Description. Comparison to pre-death records showed little difference in appearance due to manifestation. Subject returned to former home, reconciled with husband and children. First noted case of premature dematerialization, a week before standard evaporation. Subject. Richard Bellington, formerly a dock supervisor with ties to organized crime. Date. Expunged. Location. Expunged. New Jersey. USA. Cause of death. Drowning. Description. Overall manifestation resembled subject, but its clothing had changed from former work attire to an old fashioned black and white prison uniform, replete with a ball and chain around the left ankle. Subject observed going to a local police station and attempting to provide testimony to indict a local crime boss. Status of this investigation is ongoing. Dematerialized normally. Subject. Alexander Daskovich, formerly an owner of a local bar. Date. Expunged. Location. Expunged. Russia. Cause of death. Cerebral trauma. Description. Manifestation resembled a monstrously strong version of the subject, demonstrating extremely aggressive behavior. Involved in an attack on owners of his former bar, leading to one immediate death due to extreme trauma. Two other deaths resulted after a fire inside the bar consumed the building. The cause of the fire is still unknown. That's shortly after. Subject. Kongmuxian, formerly a police officer. Date. Expunged. Location. Province. China. Cause of death. Heart attack. Description. Death occurred while SCP-460 was in the area. Subject attempted to apprehend a manifestation which promptly revealed his true nature. An attack arrest as a result of stress followed. Subject manifested normally and after initial confusion proceeded to operate as a law enforcement officer until dematerialization. Subject. Alex Groll, formerly a notorious killer. Date. Expunged. Location. Expunged. Germany. Cause of death. Shot to death. Description.  Manifested at place of death, a hotel where the subject had been gunned down by law enforcement. Subject proceeded to murder and partially cannibalize most of the hotel's patronage and staff. Neutralized and dematerialized shortly after by Mu-13. First case of manifestation of a long dead subject. Subject. James Strather, formerly a noted spiritual medium. Date. Expunged. Location. Expunged. GA. USA. Cause of death. Expunged. Description. Subject appeared incredibly vindicated with his immediate action after manifestation being to inform every single one of his critics of this fact. Dematerialized early, the first example of living beings able to influence manifested spirits on the physical plane. Subject. Spot, formerly a domesticated canine. Date. Expunged. Location. Expunged. Ireland. Cause of death. Unknown. Description. Subject. Subject appeared to be a manifestation of a mixed breed dog of unverifiable heritage, wearing a small collar engraved with the name Spot. Upon contact with Mu-13, subject interacted playfully with several task force members. Subject followed Mu-13 during the entirety of the session. Dematerialized normally to the dismay of Mu-13, which had grown fond of its company. Lesson complete. If you missed the previous orientation, go watch SCP-459, interplanetary thermostat, right now. Or for the complete course, watch this playlist.